def run_auth_server(): try: client = MongoClient('localhost', 27017) db = client.test_database client_store = ClientStore(collection=db["clients"]) token_store = AccessTokenStore(collection=db["access_tokens"]) code_store = AuthCodeStore(collection=db["auth_codes"]) provider = Provider( access_token_store=token_store, auth_code_store=code_store, client_store=client_store, token_generator=Uuid4()) provider.add_grant( AuthorizationCodeGrant(site_adapter=TestSiteAdapter(), scopes=["basic", "big", "long"], unique_token=True, expires_in=20 ) ) provider.add_grant( RefreshToken(scopes=["basic", "big", "long"], expires_in=2592000, reissue_refresh_tokens=True) ) app = Application(provider=provider) httpd = make_server('', 8080, app, handler_class=OAuthRequestHandler) print("Starting OAuth2 server on http://localhost:8080/...") httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()
def main(): client = MongoClient() db = client.testdb access_token_store = AccessTokenStore(collection=db["access_tokens"]) auth_code_store = AuthCodeStore(collection=db["auth_codes"]) client_store = ClientStore(collection=db["clients"]) provider = Provider(access_token_store=access_token_store, auth_code_store=auth_code_store, client_store=client_store, site_adapter=TestSiteAdapter(), token_generator=Uuid4()) provider.add_grant(AuthorizationCodeGrant()) provider.add_grant(ImplicitGrant()) provider.add_grant(ResourceOwnerGrant()) provider.add_grant(ClientCredentialsGrant()) provider.add_grant(RefreshToken(expires_in=600)) provider.enable_unique_tokens() app = Wsgi(server=provider) try: httpd = make_server('', 8888, app) print("Starting test auth server on port 8888...") httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()
def run_provider(queue): try: redirect_uri = "http://127.0.0.1:15487/callback" stores = store_factory(client_identifier="abc", client_secret="xyz", redirect_uris=[redirect_uri]) provider = Provider( access_token_store=stores["access_token_store"], auth_code_store=stores["auth_code_store"], client_store=stores["client_store"], site_adapter=TestSiteAdapter(), token_generator=Uuid4()) provider.add_grant(AuthorizationCodeGrant(expires_in=120)) provider.add_grant(RefreshToken(expires_in=60)) app = Wsgi(server=provider) httpd = make_server('', 15486, app, handler_class=NoLoggingHandler) queue.put({"result": 0}) httpd.serve_forever() except Exception as e: queue.put({"result": 1, "error_message": str(e)})
def test_add_grant_set_expire_time(self): """ Provider.add_grant() should set the expiration time on the instance of TokenGenerator """ self.auth_server.add_grant(AuthorizationCodeGrant(expires_in=400)) self.auth_server.add_grant(ResourceOwnerGrant(expires_in=500)) self.auth_server.add_grant(RefreshToken(expires_in=1200)) self.assertEqual(self.token_generator_mock.expires_in[AuthorizationCodeGrant.grant_type], 400) self.assertEqual(self.token_generator_mock.expires_in[ResourceOwnerGrant.grant_type], 500) self.assertEqual(self.token_generator_mock.refresh_expires_in, 1200)
def main(): parser = argparse.ArgumentParser(description="python-oauth2 test provider") parser.add_argument("--store", dest="store", type=str, default="mongodb", help="The store adapter to use. Can one of 'mongodb'"\ "(default), 'mysql'") args = parser.parse_args() if args.store == "mongodb": print("Using mongodb stores...") client = MongoClient() db = client.testdb access_token_store = AccessTokenStore(collection=db["access_tokens"]) auth_code_store = AuthCodeStore(collection=db["auth_codes"]) client_store = ClientStore(collection=db["clients"]) elif args.store == "mysql": print("Using mysql stores...") connection = mysql.connector.connect(host="127.0.0.1", user="******", passwd="", db="testdb") access_token_store = MysqlAccessTokenStore(connection=connection) auth_code_store = MysqlAuthCodeStore(connection=connection) client_store = MysqlClientStore(connection=connection) else: raise Exception("Unknown store") provider = Provider(access_token_store=access_token_store, auth_code_store=auth_code_store, client_store=client_store, site_adapter=TestSiteAdapter(), token_generator=Uuid4()) provider.add_grant(AuthorizationCodeGrant(expires_in=120)) provider.add_grant(ImplicitGrant()) provider.add_grant(ResourceOwnerGrant()) provider.add_grant(ClientCredentialsGrant()) provider.add_grant(RefreshToken(expires_in=60)) app = Wsgi(server=provider) try: httpd = make_server('', 8888, app) print("Starting test auth server on port 8888...") httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()
def create_provider(): redirect_uri = "http://127.0.0.1:15487/callback" stores = store_factory(client_identifier="abc", client_secret="xyz", redirect_uris=[redirect_uri]) provider = Provider(access_token_store=stores["access_token_store"], auth_code_store=stores["auth_code_store"], client_store=stores["client_store"], token_generator=Uuid4()) provider.add_grant( AuthorizationCodeGrant(expires_in=120, site_adapter=TestSiteAdapter())) provider.add_grant(RefreshToken(expires_in=60)) return provider
def run_auth_server(): try: client = MongoClient('localhost', 27017) db = client.test_database client_store = ClientStore(collection=db["clients"]) # memory # client_store = ClientStore() # client_store.add_client(client_id="abc", client_secret="xyz", # redirect_uris=["http://localhost:8081/callback"]) # # token_store = TokenStore() token_store = AccessTokenStore(collection=db["access_tokens"]) code_store = AuthCodeStore(collection=db["auth_codes"]) provider = Provider(access_token_store=token_store, auth_code_store=code_store, client_store=client_store, token_generator=Uuid4()) provider.add_grant( AuthorizationCodeGrant(site_adapter=TestSiteAdapter(), scopes=["test", "test2"], unique_token=True, expires_in=1)) # auth_controller.add_grant_type(ResourceOwnerGrant(tokens_expire=600)) provider.add_grant( RefreshToken(scopes=["test", "test2"], expires_in=2592000, reissue_refresh_tokens=True)) # auth_controller.add_grant_type(RefreshToken(tokens_expire=1200)) app = Application(provider=provider) httpd = make_server('', 8080, app, handler_class=OAuthRequestHandler) print("Starting OAuth2 server on http://localhost:8080/...") httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()
def main(): token_store = AccessTokenStore() provider = Provider(access_token_store=token_store, auth_code_store=token_store, client_store=AuthUserStore(), token_generator=Uuid4()) provider.add_grant( ResourceOwnerGrant(site_adapter=AuthSiteAdapter(), unique_token=True, expires_in=ACCESS_TOKEN_REDIS_TTL)) provider.add_grant(RefreshToken(expires_in=REFRESH_TOKEN_REDIS_TTL)) app = Application(handlers=[ url(provider.token_path, OAuth2Handler, dict(provider=provider)), url('/validate-token', AuthValidationHandler) ], template_path=TEMPLATE_PATH, static_path=STATIC_PATH, cookie_secret=COOKIE_SECRET) print 'Starting OAuth Server on port %d' % options.port server = HTTPServer(app) server.listen(options.port) IOLoop.current().start()