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)
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)