Skip to content
Snippets Groups Projects
Commit ff48e6a4 authored by Julian's avatar Julian
Browse files

Removed remailer domain option (for now)

parent 8f791a34
No related branches found
No related tags found
No related merge requests found
Pipeline #15345 passed
...@@ -145,8 +145,6 @@ class TestSocketmapsRequestHandler(unittest.TestCase): ...@@ -145,8 +145,6 @@ class TestSocketmapsRequestHandler(unittest.TestCase):
api = UffdAPIMock(remailer_map={ api = UffdAPIMock(remailer_map={
'v1-23-testuser@remailer.example.com': 'testuser@example.com', 'v1-23-testuser@remailer.example.com': 'testuser@example.com',
'v1-23-testadmin@remailer.example.com': 'testadmin@example.com', 'v1-23-testadmin@remailer.example.com': 'testadmin@example.com',
# Artifical entry to test if map is queried (see _with_remailer_domain case)
'foobar@test.example.com': 'DOESNOTEXIT',
}) })
RequestHandler = make_requesthandler(api) RequestHandler = make_requesthandler(api)
...@@ -167,43 +165,3 @@ class TestSocketmapsRequestHandler(unittest.TestCase): ...@@ -167,43 +165,3 @@ class TestSocketmapsRequestHandler(unittest.TestCase):
conn = MockConnection(request, 4096) conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle() RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response) self.assertEqual(conn.sent, response)
# See _with_remailer_domain case
request = b'42:remailer_canonical foobar@test.example.com,'
response = b'14:OK DOESNOTEXIT,'
conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response)
def test_handle_remailer_with_remailer_domain(self):
api = UffdAPIMock(remailer_map={
'v1-23-testuser@remailer.example.com': 'testuser@example.com',
'v1-23-testadmin@remailer.example.com': 'testadmin@example.com',
# Artifical entry to test if map is queried
'foobar@test.example.com': 'DOESNOTEXIT',
})
RequestHandler = make_requesthandler(api, remailer_domain='remailer.example.com')
request = b'54:remailer_canonical v1-23-testuser@remailer.example.com,'
response = b'23:OK testuser@example.com,'
conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response)
request = b'56:remailer_canonical v1-42-not-a-user@remailer.example.com,'
response = b'9:NOTFOUND ,'
conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response)
request = b'35:remailer_canonical test@example.com,'
response = b'9:NOTFOUND ,'
conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response)
request = b'42:remailer_canonical foobar@test.example.com,'
response = b'9:NOTFOUND ,'
conn = MockConnection(request, 4096)
RequestHandler(conn, '', None).handle()
self.assertEqual(conn.sent, response)
...@@ -123,7 +123,6 @@ def decode_netstring(netstring): ...@@ -123,7 +123,6 @@ def decode_netstring(netstring):
class SocketmapsRequestHandler(socketserver.BaseRequestHandler): class SocketmapsRequestHandler(socketserver.BaseRequestHandler):
api = None # Overwritten api = None # Overwritten
remailer_domain = None # Overwritten
def handle(self): def handle(self):
buf = b'' buf = b''
...@@ -196,20 +195,16 @@ class SocketmapsRequestHandler(socketserver.BaseRequestHandler): ...@@ -196,20 +195,16 @@ class SocketmapsRequestHandler(socketserver.BaseRequestHandler):
return 'OK ' + ','.join(results) return 'OK ' + ','.join(results)
if name == 'remailer_canonical': if name == 'remailer_canonical':
domain = key.rsplit('@', 1)[-1] domain = key.rsplit('@', 1)[-1]
# If self.remailer_domain is unset, uffd will do the filtering
if self.remailer_domain is not None and domain != self.remailer_domain:
return 'NOTFOUND '
result = self.api.resolve_remailer(key) result = self.api.resolve_remailer(key)
if result is None: if result is None:
return 'NOTFOUND ' return 'NOTFOUND '
return 'OK ' + result return 'OK ' + result
return 'PERM Unknown request name', logging.WARNING return 'PERM Unknown request name', logging.WARNING
def make_requesthandler(api, remailer_domain=None): def make_requesthandler(api):
class RequestHandler(SocketmapsRequestHandler): class RequestHandler(SocketmapsRequestHandler):
pass pass
RequestHandler.api = api RequestHandler.api = api
RequestHandler.remailer_domain = remailer_domain
return RequestHandler return RequestHandler
class FilenoUnixStreamServer(socketserver.UnixStreamServer): class FilenoUnixStreamServer(socketserver.UnixStreamServer):
...@@ -245,8 +240,7 @@ class StdoutFilter(logging.Filter): ...@@ -245,8 +240,7 @@ class StdoutFilter(logging.Filter):
@click.option('--api-url', required=True, help='Uffd base URL without API prefix or trailing slash (e.g. https://example.com)') @click.option('--api-url', required=True, help='Uffd base URL without API prefix or trailing slash (e.g. https://example.com)')
@click.option('--api-user', required=True, help='API user/client id') @click.option('--api-user', required=True, help='API user/client id')
@click.option('--api-secret', required=True, help='API secret, do not set this on the command-line, use environment variable SERVER_API_SECRET instead') @click.option('--api-secret', required=True, help='API secret, do not set this on the command-line, use environment variable SERVER_API_SECRET instead')
@click.option('--remailer-domain', help='Domain to filter remailer lookups locally') def main(socket_path, socket_fd, api_url, api_user, api_secret):
def main(socket_path, socket_fd, api_url, api_user, api_secret, remailer_domain):
if (socket_path is None and socket_fd is None) or \ if (socket_path is None and socket_fd is None) or \
(socket_path is not None and socket_fd is not None): (socket_path is not None and socket_fd is not None):
raise click.ClickException('Either --socket-path or --socket-fd must be specified') raise click.ClickException('Either --socket-path or --socket-fd must be specified')
...@@ -261,7 +255,7 @@ def main(socket_path, socket_fd, api_url, api_user, api_secret, remailer_domain) ...@@ -261,7 +255,7 @@ def main(socket_path, socket_fd, api_url, api_user, api_secret, remailer_domain)
logger.addHandler(stderr_handler) logger.addHandler(stderr_handler)
api = UffdAPI(api_url, api_user, api_secret) api = UffdAPI(api_url, api_user, api_secret)
RequestHandler = make_requesthandler(api, remailer_domain) RequestHandler = make_requesthandler(api)
if socket_path is not None: if socket_path is not None:
cleanup_unix_socket(socket_path) cleanup_unix_socket(socket_path)
socketserver.ThreadingUnixStreamServer(socket_path, RequestHandler).serve_forever() socketserver.ThreadingUnixStreamServer(socket_path, RequestHandler).serve_forever()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment