Ejemplo n.º 1
0
class Federation:
    def __init__(self):
        self.clients = set()
        self._authlib_clients = OAuth()

    def register(self, client_name, **kwargs):
        self.clients.add(client_name)
        self._authlib_clients.register(client_name, **kwargs)

    def get(self, client_name):
        if client_name in self.clients:
            return self._authlib_clients.create_client(client_name)
        return None

    def init_app(self, app):
        self.register('solidsea',
                      client_cls=OIDCClient,
                      discovery_url=app.config['SOLIDSEA_DISCOVERY_URL'])
        self._authlib_clients.init_app(app)
Ejemplo n.º 2
0
class Federation:
    def __init__(self):
        self.clients = []
        self._authlib_clients = OAuth()

    def register(self, client_name, **kwargs):
        self.clients.append(client_name)
        self._authlib_clients.register(client_name, **kwargs)

    def get(self, client_name):
        if client_name in self.clients:
            return self._authlib_clients.create_client(client_name)
        return None

    def init_app(self, app):
        for client_name in app.config['FEDERATION']:
            log.info('Registering client "{}"'.format(client_name))
            module_name = app.config.get('{}_CLIENT_MODULE'.format(
                client_name.upper()))
            self.register(client_name, client_cls=get_client_cls(module_name))
        self._authlib_clients.init_app(app)