From 90685484c829d98db74dfd8e1cf01ed418f3c423 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Wed, 23 Aug 2017 05:25:54 -0300 Subject: [refactor] add localhost endpoint to server tac -- Related: #8867 --- pkg/server.tac | 7 +++++++ src/leap/soledad/server/_resource.py | 5 +++-- src/leap/soledad/server/auth.py | 3 ++- src/leap/soledad/server/entrypoint.py | 7 +++++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/pkg/server.tac b/pkg/server.tac index ef2cea50..1bc3dc69 100644 --- a/pkg/server.tac +++ b/pkg/server.tac @@ -7,6 +7,13 @@ from leap.soledad.server import entrypoint application = service.Application('soledad-server') +# local entrypoint +local_description = 'tcp:2323:interface=127.0.0.1' +local_site = server.Site(entrypoint.LocalServicesEntrypoint()) + +local_server = strports.service(local_description, local_site) +local_server.setServiceParent(application) + # public entrypoint port = os.getenv('HTTPS_PORT', None) if port: diff --git a/src/leap/soledad/server/_resource.py b/src/leap/soledad/server/_resource.py index e4c51ded..c097fad8 100644 --- a/src/leap/soledad/server/_resource.py +++ b/src/leap/soledad/server/_resource.py @@ -55,8 +55,9 @@ class LocalResource(Resource): Used for localhost endpoints, like IncomingBox delivery. """ - def __init__(conf): - pass + def __init__(self): + Resource.__init__(self) + self.putChild('incoming', IncomingResource()) class SoledadResource(Resource): diff --git a/src/leap/soledad/server/auth.py b/src/leap/soledad/server/auth.py index 934517b5..4dbe9a6d 100644 --- a/src/leap/soledad/server/auth.py +++ b/src/leap/soledad/server/auth.py @@ -86,7 +86,7 @@ class LocalServicesRealm(object): conf = get_config() self.anon_resource = SoledadAnonResource( enable_blobs=conf['blobs']) - self.auth_resource = LocalResource(conf) + self.auth_resource = LocalResource() def requestAvatar(self, avatarId, mind, *interfaces): @@ -105,6 +105,7 @@ class LocalServicesRealm(object): @implementer(ICredentialsChecker) class FileTokenChecker(object): + credentialInterfaces = [IUsernamePassword, IAnonymous] def __init__(self, conf=None): conf = conf or get_config() diff --git a/src/leap/soledad/server/entrypoint.py b/src/leap/soledad/server/entrypoint.py index 9b9a5e66..7115007b 100644 --- a/src/leap/soledad/server/entrypoint.py +++ b/src/leap/soledad/server/entrypoint.py @@ -44,7 +44,14 @@ class SoledadEntrypoint(SoledadSession): SoledadSession.__init__(self, portal) +class LocalServicesEntrypoint(SoledadSession): + + def __init__(self): + portal = portalFactory(public=False) + SoledadSession.__init__(self, portal) + # see the comments in application.py recarding why couch state has to be # initialized when the reactor is running + reactor.callWhenRunning(init_couch_state, conf) -- cgit v1.2.3