aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Kriechbaumer <Kriechi@users.noreply.github.com>2017-03-01 12:46:42 +0100
committerGitHub <noreply@github.com>2017-03-01 12:46:42 +0100
commita505221e1ab210d35c91c9126eb6b621637235b3 (patch)
tree1fbd480ae614241770a223a6da239765ccfe8cf3
parent99b584ad7d51470421a176c1b54766fc4dcd5b08 (diff)
downloadmitmproxy-a505221e1ab210d35c91c9126eb6b621637235b3.tar.gz
mitmproxy-a505221e1ab210d35c91c9126eb6b621637235b3.tar.bz2
mitmproxy-a505221e1ab210d35c91c9126eb6b621637235b3.zip
http2: fix h2 header normalization test (#2080)
-rw-r--r--mitmproxy/proxy/protocol/http2.py3
-rw-r--r--test/mitmproxy/proxy/protocol/test_http2.py69
2 files changed, 0 insertions, 72 deletions
diff --git a/mitmproxy/proxy/protocol/http2.py b/mitmproxy/proxy/protocol/http2.py
index 019159de..01406798 100644
--- a/mitmproxy/proxy/protocol/http2.py
+++ b/mitmproxy/proxy/protocol/http2.py
@@ -597,9 +597,6 @@ class Http2SingleStreamLayer(httpbase._HttpTransmissionLayer, basethread.BaseThr
def send_response_headers(self, response):
headers = response.headers.copy()
headers.insert(0, ":status", str(response.status_code))
- for forbidden_header in h2.utilities.CONNECTION_HEADERS:
- if forbidden_header in headers:
- del headers[forbidden_header]
with self.connections[self.client_conn].lock:
self.connections[self.client_conn].safe_send_headers(
self.raise_zombie,
diff --git a/test/mitmproxy/proxy/protocol/test_http2.py b/test/mitmproxy/proxy/protocol/test_http2.py
index 19c2d2ef..871d02fe 100644
--- a/test/mitmproxy/proxy/protocol/test_http2.py
+++ b/test/mitmproxy/proxy/protocol/test_http2.py
@@ -272,75 +272,6 @@ class TestSimple(_Http2Test):
@requires_alpn
-class TestForbiddenHeaders(_Http2Test):
-
- @classmethod
- def handle_server_event(cls, event, h2_conn, rfile, wfile):
- if isinstance(event, h2.events.ConnectionTerminated):
- return False
- elif isinstance(event, h2.events.StreamEnded):
- import warnings
- with warnings.catch_warnings():
- # Ignore UnicodeWarning:
- # h2/utilities.py:64: UnicodeWarning: Unicode equal comparison
- # failed to convert both arguments to Unicode - interpreting
- # them as being unequal.
- # elif header[0] in (b'cookie', u'cookie') and len(header[1]) < 20:
-
- warnings.simplefilter("ignore")
-
- h2_conn.config.validate_outbound_headers = False
- h2_conn.send_headers(event.stream_id, [
- (':status', '200'),
- ('keep-alive', 'foobar'),
- ])
- h2_conn.send_data(event.stream_id, b'response body')
- h2_conn.end_stream(event.stream_id)
- wfile.write(h2_conn.data_to_send())
- wfile.flush()
- return True
-
- def test_forbidden_headers(self):
- client, h2_conn = self._setup_connection()
-
- self._send_request(
- client.wfile,
- h2_conn,
- headers=[
- (':authority', "127.0.0.1:{}".format(self.server.server.address[1])),
- (':method', 'GET'),
- (':scheme', 'https'),
- (':path', '/'),
- ])
-
- done = False
- while not done:
- try:
- raw = b''.join(http2.read_raw_frame(client.rfile))
- events = h2_conn.receive_data(raw)
- except exceptions.HttpException:
- print(traceback.format_exc())
- assert False
-
- client.wfile.write(h2_conn.data_to_send())
- client.wfile.flush()
-
- for event in events:
- if isinstance(event, h2.events.ResponseReceived):
- assert 'keep-alive' not in event.headers
- elif isinstance(event, h2.events.StreamEnded):
- done = True
-
- h2_conn.close_connection()
- client.wfile.write(h2_conn.data_to_send())
- client.wfile.flush()
-
- assert len(self.master.state.flows) == 1
- assert self.master.state.flows[0].response.status_code == 200
- assert self.master.state.flows[0].response.headers['keep-alive'] == 'foobar'
-
-
-@requires_alpn
class TestRequestWithPriority(_Http2Test):
@classmethod