Example #1
0
def run_auth_server():
    try:
        client_store = ClientStore()
        client_store.add_client(client_id="abc", client_secret="xyz",
                                redirect_uris=[])

        token_store = TokenStore()

        provider = Provider(
            access_token_store=token_store,
            auth_code_store=token_store,
            client_store=client_store,
            token_generator=Uuid4())

        provider.add_grant(
            ResourceOwnerGrant(site_adapter=TestSiteAdapter())
        )

        app = Application(provider=provider)

        httpd = make_server('', 8080, app)

        print("Starting OAuth2 server on http://localhost:8080/...")
        httpd.serve_forever()
    except KeyboardInterrupt:
        httpd.server_close()
Example #2
0
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 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)
Example #4
0
def make_application(token_store, client_store, token_gen):
    provider = Provider(
        access_token_store=token_store,
        auth_code_store=token_store,
        client_store=client_store,
        token_generator=token_gen)

    provider.add_grant(
        ResourceOwnerGrant(
            expires_in=3600,
            site_adapter=TestSiteAdapter())
    )
    return Application(provider=provider)
Example #5
0
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()
Example #6
0
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()
 def __init__(self, request):
     super(UserAuthController, self).__init__(request, OAuth2SiteAdapter())
     self.add_grant(ResourceOwnerGrant(unique_token=True))