def test_10_auth_lastauth(self): serial = "SPASSLASTAUTH" pin = "secretpin" def fake_auth_missing_serial(user, pin, options=None): return True, {} def fake_auth(user, pin, options): return True, {"serial": serial} user = User("cornelius", realm="r1") init_token({"type": "spass", "pin": pin, "serial": serial}, user=user) # set time limit policy set_policy(name="pol_lastauth", scope=SCOPE.AUTHZ, action="{0!s}=1d".format(ACTION.LASTAUTH)) g = FakeFlaskG() g.policy_object = PolicyClass() g.audit_object = FakeAudit() options = {"g": g} rv = auth_lastauth(fake_auth, user, pin, options) self.assertEqual(rv[0], True) token = get_tokens(serial=serial)[0] # Set a very old last_auth token.add_tokeninfo(ACTION.LASTAUTH, datetime.datetime.utcnow()-datetime.timedelta(days=2)) rv = auth_lastauth(fake_auth, user, pin, options) self.assertEqual(rv[0], False) self.assertTrue("The last successful authentication was" in rv[1].get("message"), rv[1]) remove_token(serial) delete_policy("pol_lastauth")
def test_10_auth_lastauth(self): serial = "SPASSLASTAUTH" pin = "secretpin" def fake_auth_missing_serial(user, pin, options=None): return True, {} def fake_auth(user, pin, options): return True, {"serial": serial} user = User("cornelius", realm="r1") init_token({"type": "spass", "pin": pin, "serial": serial}, user=user) # set time limit policy set_policy(name="pol_lastauth", scope=SCOPE.AUTHZ, action="{0!s}=1d".format(ACTION.LASTAUTH)) g = FakeFlaskG() g.policy_object = PolicyClass() g.audit_object = FakeAudit() options = {"g": g} rv = auth_lastauth(fake_auth, user, pin, options) self.assertEqual(rv[0], True) token = get_tokens(serial=serial)[0] # Set a very old last_auth token.add_tokeninfo(ACTION.LASTAUTH, datetime.datetime.utcnow()-datetime.timedelta(days=2)) rv = auth_lastauth(fake_auth, user, pin, options) self.assertEqual(rv[0], False) self.assertTrue("The last successful authentication was" in rv[1].get("message"), rv[1]) remove_token(serial) delete_policy("pol_lastauth")