authentik.sources.oauth.tests.test_client
1from django.test import RequestFactory, TestCase 2from guardian.shortcuts import get_anonymous_user 3 4from authentik.lib.generators import generate_id 5from authentik.sources.oauth.clients.oauth2 import OAuth2Client 6from authentik.sources.oauth.models import AuthorizationCodeAuthMethod, OAuthSource 7from authentik.sources.oauth.types.oidc import OpenIDConnectClient 8 9 10class TestOAuthClient(TestCase): 11 """OAuth Source tests""" 12 13 def setUp(self): 14 self.source = OAuthSource.objects.create( 15 name="test", 16 slug="test", 17 provider_type="openidconnect", 18 authorization_url="", 19 profile_url="", 20 consumer_key=generate_id(), 21 ) 22 self.factory = RequestFactory() 23 24 def test_client_post_body_auth(self): 25 """Test login_challenge""" 26 self.source.provider_type = "apple" 27 self.source.save() 28 request = self.factory.get("/") 29 request.session = {} 30 request.user = get_anonymous_user() 31 client = OAuth2Client(self.source, request) 32 self.assertIsNone(client.get_access_token_auth()) 33 args = client.get_access_token_args("", "") 34 self.assertIn("client_id", args) 35 self.assertIn("client_secret", args) 36 37 def test_client_basic_auth(self): 38 """Test login_challenge""" 39 self.source.provider_type = "reddit" 40 self.source.save() 41 request = self.factory.get("/") 42 request.session = {} 43 request.user = get_anonymous_user() 44 client = OAuth2Client(self.source, request) 45 self.assertIsNotNone(client.get_access_token_auth()) 46 args = client.get_access_token_args("", "") 47 self.assertNotIn("client_id", args) 48 self.assertNotIn("client_secret", args) 49 50 def test_client_openid_auth(self): 51 """Test login_challenge""" 52 request = self.factory.get("/") 53 request.session = {} 54 request.user = get_anonymous_user() 55 client = OpenIDConnectClient(self.source, request) 56 57 self.assertIsNotNone(client.get_access_token_auth()) 58 args = client.get_access_token_args("", "") 59 self.assertNotIn("client_id", args) 60 self.assertNotIn("client_secret", args) 61 62 self.source.authorization_code_auth_method = AuthorizationCodeAuthMethod.POST_BODY 63 self.source.save() 64 client = OpenIDConnectClient(self.source, request) 65 66 self.assertIsNone(client.get_access_token_auth()) 67 args = client.get_access_token_args("", "") 68 self.assertIn("client_id", args) 69 self.assertIn("client_secret", args)
class
TestOAuthClient(django.test.testcases.TestCase):
11class TestOAuthClient(TestCase): 12 """OAuth Source tests""" 13 14 def setUp(self): 15 self.source = OAuthSource.objects.create( 16 name="test", 17 slug="test", 18 provider_type="openidconnect", 19 authorization_url="", 20 profile_url="", 21 consumer_key=generate_id(), 22 ) 23 self.factory = RequestFactory() 24 25 def test_client_post_body_auth(self): 26 """Test login_challenge""" 27 self.source.provider_type = "apple" 28 self.source.save() 29 request = self.factory.get("/") 30 request.session = {} 31 request.user = get_anonymous_user() 32 client = OAuth2Client(self.source, request) 33 self.assertIsNone(client.get_access_token_auth()) 34 args = client.get_access_token_args("", "") 35 self.assertIn("client_id", args) 36 self.assertIn("client_secret", args) 37 38 def test_client_basic_auth(self): 39 """Test login_challenge""" 40 self.source.provider_type = "reddit" 41 self.source.save() 42 request = self.factory.get("/") 43 request.session = {} 44 request.user = get_anonymous_user() 45 client = OAuth2Client(self.source, request) 46 self.assertIsNotNone(client.get_access_token_auth()) 47 args = client.get_access_token_args("", "") 48 self.assertNotIn("client_id", args) 49 self.assertNotIn("client_secret", args) 50 51 def test_client_openid_auth(self): 52 """Test login_challenge""" 53 request = self.factory.get("/") 54 request.session = {} 55 request.user = get_anonymous_user() 56 client = OpenIDConnectClient(self.source, request) 57 58 self.assertIsNotNone(client.get_access_token_auth()) 59 args = client.get_access_token_args("", "") 60 self.assertNotIn("client_id", args) 61 self.assertNotIn("client_secret", args) 62 63 self.source.authorization_code_auth_method = AuthorizationCodeAuthMethod.POST_BODY 64 self.source.save() 65 client = OpenIDConnectClient(self.source, request) 66 67 self.assertIsNone(client.get_access_token_auth()) 68 args = client.get_access_token_args("", "") 69 self.assertIn("client_id", args) 70 self.assertIn("client_secret", args)
OAuth Source tests
def
setUp(self):
14 def setUp(self): 15 self.source = OAuthSource.objects.create( 16 name="test", 17 slug="test", 18 provider_type="openidconnect", 19 authorization_url="", 20 profile_url="", 21 consumer_key=generate_id(), 22 ) 23 self.factory = RequestFactory()
Hook method for setting up the test fixture before exercising it.
def
test_client_post_body_auth(self):
25 def test_client_post_body_auth(self): 26 """Test login_challenge""" 27 self.source.provider_type = "apple" 28 self.source.save() 29 request = self.factory.get("/") 30 request.session = {} 31 request.user = get_anonymous_user() 32 client = OAuth2Client(self.source, request) 33 self.assertIsNone(client.get_access_token_auth()) 34 args = client.get_access_token_args("", "") 35 self.assertIn("client_id", args) 36 self.assertIn("client_secret", args)
Test login_challenge
def
test_client_basic_auth(self):
38 def test_client_basic_auth(self): 39 """Test login_challenge""" 40 self.source.provider_type = "reddit" 41 self.source.save() 42 request = self.factory.get("/") 43 request.session = {} 44 request.user = get_anonymous_user() 45 client = OAuth2Client(self.source, request) 46 self.assertIsNotNone(client.get_access_token_auth()) 47 args = client.get_access_token_args("", "") 48 self.assertNotIn("client_id", args) 49 self.assertNotIn("client_secret", args)
Test login_challenge
def
test_client_openid_auth(self):
51 def test_client_openid_auth(self): 52 """Test login_challenge""" 53 request = self.factory.get("/") 54 request.session = {} 55 request.user = get_anonymous_user() 56 client = OpenIDConnectClient(self.source, request) 57 58 self.assertIsNotNone(client.get_access_token_auth()) 59 args = client.get_access_token_args("", "") 60 self.assertNotIn("client_id", args) 61 self.assertNotIn("client_secret", args) 62 63 self.source.authorization_code_auth_method = AuthorizationCodeAuthMethod.POST_BODY 64 self.source.save() 65 client = OpenIDConnectClient(self.source, request) 66 67 self.assertIsNone(client.get_access_token_auth()) 68 args = client.get_access_token_args("", "") 69 self.assertIn("client_id", args) 70 self.assertIn("client_secret", args)
Test login_challenge