def create_provider(self): kb = KeyBundle(JWKS["keys"]) kj = KeyJar() kj.issuer_keys[''] = [kb] _sdb = SessionDB("https://example.com/", db={}, code_factory=DefaultToken('supersecret', 'verybadpassword', typ='A', lifetime=600), token_factory=JWTToken('T', keyjar=kj, lt_pattern={ 'code': 3600, 'token': 900 }, iss='https://example.com/as', sign_alg='RS256'), refresh_token_factory=JWTToken( 'R', keyjar=kj, lt_pattern={'': 24 * 3600}, iss='https://example.com/as')) # name, sdb, cdb, authn_broker, authz, client_authn, self.provider = Provider("as", _sdb, CDB, AUTHN_BROKER, AUTHZ, verify_client, baseurl='https://example.com/as')
def create_sdb(self): kb = KeyBundle(JWKS["keys"]) kj = KeyJar() kj.issuer_keys[""] = [kb] self.sdb = SessionDB( "https://example.com/", db=DictSessionBackend(), code_factory=DefaultToken("supersecret", "verybadpassword", typ="A", lifetime=600), token_factory=JWTToken( "T", keyjar=kj, lt_pattern={ "code": 3600, "token": 900 }, iss="https://example.com/as", sign_alg="RS256", ), refresh_token_factory=JWTToken( "R", keyjar=kj, lt_pattern={"": 24 * 3600}, iss="https://example.com/as", token_storage={}, ), )
def test_expired_stale(self): initial_datetime = datetime.datetime(2018, 2, 5, 10, 0, 0, 0) final_datetime = datetime.datetime(2018, 2, 5, 10, 1, 0, 0) factory = DefaultToken('secret', 'password', lifetime=2) with freeze_time(initial_datetime) as frozen: token = factory(sid="abc", ttype="T") frozen.move_to(final_datetime) assert factory.is_expired(token) is True
def create_provider(self): kb = KeyBundle(JWKS["keys"]) kj = KeyJar() kj.issuer_keys[""] = [kb] _sdb = SessionDB( "https://example.com/", db=DictSessionBackend(), code_factory=DefaultToken("supersecret", "verybadpassword", typ="A", lifetime=600), token_factory=JWTToken( "T", keyjar=kj, lt_pattern={ "code": 3600, "token": 900 }, iss="https://example.com/as", sign_alg="RS256", ), refresh_token_factory=JWTToken( "R", keyjar=kj, lt_pattern={"": 24 * 3600}, iss="https://example.com/as", token_storage={}, ), ) # name, sdb, cdb, authn_broker, authz, client_authn, self.provider = Provider( "as", _sdb, CDB, AUTHN_BROKER, AUTHZ, verify_client, baseurl="https://example.com/as", )
def create_sdb(self): kb = KeyBundle(JWKS["keys"]) kj = KeyJar() kj.issuer_keys[''] = [kb] self.sdb = SessionDB( "https://example.com/", db={}, code_factory=DefaultToken('supersecret', 'verybadpassword', typ='A', lifetime=600), token_factory=JWTToken('T', keyjar=kj, lt_pattern={ 'code': 3600, 'token': 900 }, iss='https://example.com/as', sign_alg='RS256'), refresh_token_factory=JWTToken('R', keyjar=kj, lt_pattern={'': 24 * 3600}, iss='https://example.com/as'))
def create_token(self): self.token = DefaultToken("secret", "password", lifetime={'': 60})
def test_expired_when(self): factory = DefaultToken('secret', 'password', lifetime=2) token = factory(sid="abc", ttype="T") when = time.time() + 5 # 5 seconds from now assert factory.is_expired(token, when=when) is True
def test_expired_fresh(self): factory = DefaultToken('secret', 'password', lifetime=60) token = factory(sid="abc", ttype="T") assert factory.is_expired(token) is False
exit() # oas.key_setup("static", sig={"format": "jwk", "alg": "rsa"}) else: jwks_file_name = JWKS_FILE_NAME f = open(jwks_file_name, "w") for key in jwks["keys"]: for k in key.keys(): key[k] = as_unicode(key[k]) f.write(json.dumps(jwks)) f.close() oas.jwks_uri = "{}/{}".format(oas.baseurl, jwks_file_name) # Initiate the SessionDB _code = DefaultToken(rndstr(32), rndstr(32), typ='A', lifetime=600) _token = JWTToken('T', oas.keyjar, { 'code': 3600, 'token': 900 }, iss=config.issuer, sign_alg='RS256') _refresh_token = JWTToken('R', oas.keyjar, {'': 86400}, iss=config.issuer, sign_alg='RS256') oas.sdb = SessionDB(config.SERVICE_URL, db={}, code_factory=_code, token_factory=_token,