diff options
author | ianb <devnull@localhost> | 2006-12-18 19:12:00 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2006-12-18 19:12:00 +0000 |
commit | 8122da5775577faad229f9febc2838d4af3425b4 (patch) | |
tree | bc0717f08f0e25ece8445b9c97a6f83f1528e541 /paste/proxy.py | |
parent | 7b8dc91c464ac3a770140b26d4e6cc351bafba0d (diff) | |
download | paste-8122da5775577faad229f9febc2838d4af3425b4.tar.gz |
Quote SCRIPT_NAME and PATH_INFO in construct_url and when forwarding the request via the proxy
Diffstat (limited to 'paste/proxy.py')
-rw-r--r-- | paste/proxy.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/paste/proxy.py b/paste/proxy.py index 9148159..1fa38c3 100644 --- a/paste/proxy.py +++ b/paste/proxy.py @@ -31,6 +31,7 @@ TODO: import httplib import urlparse +import urllib from paste import httpexceptions from paste.util.converters import aslist @@ -87,14 +88,15 @@ class Proxy(object): else: body = '' + path_info = urllib.quote(environ['PATH_INFO']) if self.path: - request_path = environ['PATH_INFO'] + request_path = path_info if request_path[0] == '/': request_path = request_path[1:] path = urlparse.urljoin(self.path, request_path) else: - path = environ['PATH_INFO'] + path = path_info conn.request(environ['REQUEST_METHOD'], path, @@ -213,6 +215,7 @@ class TransparentProxy(object): path = (environ.get('SCRIPT_NAME', '') + environ.get('PATH_INFO', '')) + path = urllib.quote(path) if 'QUERY_STRING' in environ: path += '?' + environ['QUERY_STRING'] conn.request(environ['REQUEST_METHOD'], |