summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_middleware/http_proxy_to_wsgi.py2
-rw-r--r--oslo_middleware/tests/test_http_proxy_to_wsgi.py12
2 files changed, 13 insertions, 1 deletions
diff --git a/oslo_middleware/http_proxy_to_wsgi.py b/oslo_middleware/http_proxy_to_wsgi.py
index 4d68bcf..701e5c8 100644
--- a/oslo_middleware/http_proxy_to_wsgi.py
+++ b/oslo_middleware/http_proxy_to_wsgi.py
@@ -49,7 +49,7 @@ class HTTPProxyToWSGI(base.ConfigurableMiddleware):
entry = {}
for d in proxy.split(";"):
key, _, value = d.partition("=")
- entry[key.lower()] = value
+ entry[key.lower().strip()] = value.strip()
result.append(entry)
return result
diff --git a/oslo_middleware/tests/test_http_proxy_to_wsgi.py b/oslo_middleware/tests/test_http_proxy_to_wsgi.py
index 1554ece..34640e4 100644
--- a/oslo_middleware/tests/test_http_proxy_to_wsgi.py
+++ b/oslo_middleware/tests/test_http_proxy_to_wsgi.py
@@ -90,6 +90,18 @@ class TestHTTPProxyToWSGI(test_base.BaseTestCase):
response = self.request.get_response(self.middleware)
self.assertEqual(b"https://localhost:80/", response.body)
+ def test__parse_rfc7239_header(self):
+ expected_result = [{'for': 'foobar', 'proto': 'https'},
+ {'for': 'foobaz', 'proto': 'http'}]
+
+ result = self.middleware._parse_rfc7239_header(
+ "for=foobar;proto=https, for=foobaz;proto=http")
+ self.assertEqual(expected_result, result)
+
+ result = self.middleware._parse_rfc7239_header(
+ "for=foobar; proto=https, for=foobaz; proto=http")
+ self.assertEqual(expected_result, result)
+
def test_rfc7239_proto_host(self):
self.request.headers['Forwarded'] = (
"for=foobar;proto=https;host=example.com, for=foobaz;proto=http")