示例#1
0
    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)
示例#2
0
    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)