def test_38_autoassign(self): user = User("autoassignuser", realm=self.realm1) tokenobject = init_token({"serial": "AUTO001", "type": "hotp", "otpkey": self.otpkey, "realm": self.realm1}) tokenobject = init_token({"serial": "AUTO002", "type": "hotp", "otpkey": "1234", "realm": self.realm1}) realms = get_realms_of_token("AUTO001") # The token is in realm1 self.assertTrue(self.realm1 in realms, realms) realms = get_realms_of_token("AUTO002") # The token is in realm1 self.assertTrue(self.realm1 in realms, realms) # Authentication by autoassign fails due to wrong password r, reply_dict = auto_assign_token(user, "wrong287082") # Nevertheless the 287082 is void, now! self.assertFalse(r) self.assertTrue("failed to authenticate against userstore" in reply_dict.get("message"), reply_dict) # Authentication by autoassign r, reply_dict = auto_assign_token(user, "test399871") self.assertTrue(r, (r, reply_dict)) # Token is assigned self.assertTrue(get_tokens(user=user, count=True) == 1, get_tokens( user=user)) # Normal authentication r = check_user_pass(user, "test520489") self.assertTrue(r) # Now try to assign a new token to the user, which will not work, # as autoassignment only works for users, who have NO token. r, reply_dict = auto_assign_token(user, "test287082") # Autoassignment fails self.assertFalse(r)
def test_39_auto_assign_token_2(self): user = User("autoassignuser", realm=self.realm1) # be sure, that the user has no tokens assigned! try: unassign_token(None, user=user) except TokenAdminError: pass tokenobject = init_token({"serial": "AUTO003", "type": "hotp", "otpkey": self.otpkey, "realm": self.realm1}) tokenobject = init_token({"serial": "AUTO004", "type": "hotp", "otpkey": self.otpkey, "realm": self.realm1}) # autoassigment fails, if multiple tokens return the same result. r, reply_dict = auto_assign_token(user, "test254676") self.assertFalse(r) self.assertTrue("tokens with the given OTP" in reply_dict.get( "message"), reply_dict)