From 78750a8b4da217a2b3f3eac23bea92b6c428fc35 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Mon, 10 Mar 2014 02:32:27 +0100 Subject: lay the foundations for --(in|out)(abs|rel) command line switches, as proposed in https://groups.google.com/forum/#!topic/mitmproxy/nApno2TXS0c --- test/tservers.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'test/tservers.py') diff --git a/test/tservers.py b/test/tservers.py index bfafc8cd..addc7011 100644 --- a/test/tservers.py +++ b/test/tservers.py @@ -197,6 +197,8 @@ class TransparentProxTest(ProxTestBase): resolver = cls.resolver(cls.server.port), sslports = ports ) + d["http_form_in"] = "relative" + d["http_form_out"] = "relative" return d def pathod(self, spec, sni=None): @@ -225,11 +227,13 @@ class ReverseProxTest(ProxTestBase): @classmethod def get_proxy_config(cls): d = ProxTestBase.get_proxy_config() - d["reverse_proxy"] = ( + d["upstream_server"] = ( "https" if cls.ssl else "http", "127.0.0.1", cls.server.port ) + d["http_form_in"] = "relative" + d["http_form_out"] = "relative" return d def pathoc(self, sni=None): @@ -258,18 +262,19 @@ class ChainProxTest(ProxTestBase): Chain n instances of mitmproxy in a row - because we can. """ n = 2 - chain_config = [lambda: ProxyConfig( - )] * n + chain_config = [lambda: ProxyConfig()] * n @classmethod def setupAll(cls): super(ChainProxTest, cls).setupAll() cls.chain = [] for i in range(cls.n): config = cls.chain_config[i]() - config.forward_proxy = ("http", "127.0.0.1", + config.upstream_server = ("http", "127.0.0.1", cls.proxy.port if i == 0 else cls.chain[-1].port ) + config.http_form_in = "absolute" + config.http_form_out = "absolute" tmaster = cls.masterclass(config) tmaster.start_app(APP_HOST, APP_PORT, cls.externalapp) cls.chain.append(ProxyThread(tmaster)) -- cgit v1.2.3 From fe58c1c6eb16fdc14bd24843cb896b3d8a4eefc8 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Mon, 10 Mar 2014 05:11:51 +0100 Subject: add advanced proxying options, add SSL-terminating capability to mitmproxy --- test/tservers.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'test/tservers.py') diff --git a/test/tservers.py b/test/tservers.py index addc7011..9ad3b735 100644 --- a/test/tservers.py +++ b/test/tservers.py @@ -4,6 +4,7 @@ import shutil, tempfile import flask from libmproxy.proxy.config import ProxyConfig from libmproxy.proxy.server import ProxyServer +from libmproxy.proxy.primitives import TransparentUpstreamServerResolver import libpathod.test, libpathod.pathoc from libmproxy import flow, controller from libmproxy.cmdline import APP_HOST, APP_PORT @@ -193,10 +194,7 @@ class TransparentProxTest(ProxTestBase): ports = [cls.server.port, cls.server2.port] else: ports = [] - d["transparent_proxy"] = dict( - resolver = cls.resolver(cls.server.port), - sslports = ports - ) + d["get_upstream_server"] = TransparentUpstreamServerResolver(cls.resolver(cls.server.port), ports) d["http_form_in"] = "relative" d["http_form_out"] = "relative" return d @@ -227,11 +225,12 @@ class ReverseProxTest(ProxTestBase): @classmethod def get_proxy_config(cls): d = ProxTestBase.get_proxy_config() - d["upstream_server"] = ( - "https" if cls.ssl else "http", - "127.0.0.1", - cls.server.port - ) + d["get_upstream_server"] = lambda c: ( + True if cls.ssl else False, + True if cls.ssl else False, + "127.0.0.1", + cls.server.port + ) d["http_form_in"] = "relative" d["http_form_out"] = "relative" return d @@ -262,19 +261,17 @@ class ChainProxTest(ProxTestBase): Chain n instances of mitmproxy in a row - because we can. """ n = 2 - chain_config = [lambda: ProxyConfig()] * n + chain_config = [lambda port: ProxyConfig( + get_upstream_server = lambda c: (False, False, "127.0.0.1", port), + http_form_in = "absolute", + http_form_out = "absolute" + )] * n @classmethod def setupAll(cls): super(ChainProxTest, cls).setupAll() cls.chain = [] for i in range(cls.n): - config = cls.chain_config[i]() - config.upstream_server = ("http", "127.0.0.1", - cls.proxy.port if i == 0 else - cls.chain[-1].port - ) - config.http_form_in = "absolute" - config.http_form_out = "absolute" + config = cls.chain_config[i](cls.proxy.port if i == 0 else cls.chain[-1].port) tmaster = cls.masterclass(config) tmaster.start_app(APP_HOST, APP_PORT, cls.externalapp) cls.chain.append(ProxyThread(tmaster)) -- cgit v1.2.3