authentik.sources.kerberos.tests.test_auth
Kerberos Source Auth tests
1"""Kerberos Source Auth tests""" 2 3from django.contrib.auth.hashers import is_password_usable 4 5from authentik.core.models import User 6from authentik.lib.generators import generate_id 7from authentik.sources.kerberos.auth import KerberosBackend 8from authentik.sources.kerberos.models import KerberosSource, UserKerberosSourceConnection 9from authentik.sources.kerberos.tests.utils import KerberosTestCase 10 11 12class TestKerberosAuth(KerberosTestCase): 13 """Kerberos Auth tests""" 14 15 def setUp(self): 16 self.source = KerberosSource.objects.create( 17 name="kerberos", 18 slug="kerberos", 19 realm=self.realm.realm, 20 sync_users=False, 21 sync_users_password=False, 22 password_login_update_internal_password=True, 23 ) 24 self.user = User.objects.create(username=generate_id()) 25 self.user.set_unusable_password() 26 self.user.save() 27 UserKerberosSourceConnection.objects.create( 28 source=self.source, user=self.user, identifier=self.realm.user_princ 29 ) 30 31 def test_auth_username(self): 32 """Test auth username""" 33 backend = KerberosBackend() 34 self.assertEqual( 35 backend.authenticate( 36 None, username=self.user.username, password=self.realm.password("user") 37 ), 38 self.user, 39 ) 40 41 def test_auth_principal(self): 42 """Test auth principal""" 43 backend = KerberosBackend() 44 self.assertEqual( 45 backend.authenticate( 46 None, username=self.realm.user_princ, password=self.realm.password("user") 47 ), 48 self.user, 49 ) 50 51 def test_internal_password_update(self): 52 """Test internal password update""" 53 backend = KerberosBackend() 54 backend.authenticate( 55 None, username=self.realm.user_princ, password=self.realm.password("user") 56 ) 57 self.user.refresh_from_db() 58 self.assertTrue(is_password_usable(self.user.password))
13class TestKerberosAuth(KerberosTestCase): 14 """Kerberos Auth tests""" 15 16 def setUp(self): 17 self.source = KerberosSource.objects.create( 18 name="kerberos", 19 slug="kerberos", 20 realm=self.realm.realm, 21 sync_users=False, 22 sync_users_password=False, 23 password_login_update_internal_password=True, 24 ) 25 self.user = User.objects.create(username=generate_id()) 26 self.user.set_unusable_password() 27 self.user.save() 28 UserKerberosSourceConnection.objects.create( 29 source=self.source, user=self.user, identifier=self.realm.user_princ 30 ) 31 32 def test_auth_username(self): 33 """Test auth username""" 34 backend = KerberosBackend() 35 self.assertEqual( 36 backend.authenticate( 37 None, username=self.user.username, password=self.realm.password("user") 38 ), 39 self.user, 40 ) 41 42 def test_auth_principal(self): 43 """Test auth principal""" 44 backend = KerberosBackend() 45 self.assertEqual( 46 backend.authenticate( 47 None, username=self.realm.user_princ, password=self.realm.password("user") 48 ), 49 self.user, 50 ) 51 52 def test_internal_password_update(self): 53 """Test internal password update""" 54 backend = KerberosBackend() 55 backend.authenticate( 56 None, username=self.realm.user_princ, password=self.realm.password("user") 57 ) 58 self.user.refresh_from_db() 59 self.assertTrue(is_password_usable(self.user.password))
Kerberos Auth tests
def
setUp(self):
16 def setUp(self): 17 self.source = KerberosSource.objects.create( 18 name="kerberos", 19 slug="kerberos", 20 realm=self.realm.realm, 21 sync_users=False, 22 sync_users_password=False, 23 password_login_update_internal_password=True, 24 ) 25 self.user = User.objects.create(username=generate_id()) 26 self.user.set_unusable_password() 27 self.user.save() 28 UserKerberosSourceConnection.objects.create( 29 source=self.source, user=self.user, identifier=self.realm.user_princ 30 )
Hook method for setting up the test fixture before exercising it.
def
test_auth_username(self):
32 def test_auth_username(self): 33 """Test auth username""" 34 backend = KerberosBackend() 35 self.assertEqual( 36 backend.authenticate( 37 None, username=self.user.username, password=self.realm.password("user") 38 ), 39 self.user, 40 )
Test auth username
def
test_auth_principal(self):
42 def test_auth_principal(self): 43 """Test auth principal""" 44 backend = KerberosBackend() 45 self.assertEqual( 46 backend.authenticate( 47 None, username=self.realm.user_princ, password=self.realm.password("user") 48 ), 49 self.user, 50 )
Test auth principal
def
test_internal_password_update(self):
52 def test_internal_password_update(self): 53 """Test internal password update""" 54 backend = KerberosBackend() 55 backend.authenticate( 56 None, username=self.realm.user_princ, password=self.realm.password("user") 57 ) 58 self.user.refresh_from_db() 59 self.assertTrue(is_password_usable(self.user.password))
Test internal password update