diff options
author | pjenvey <devnull@localhost> | 2006-06-18 20:07:01 +0000 |
---|---|---|
committer | pjenvey <devnull@localhost> | 2006-06-18 20:07:01 +0000 |
commit | 899bc9ef55578437f29a2c178f2d05fe2ebb372e (patch) | |
tree | 92656e445634bbb7c696fefef98a089564b4b82c /paste/urlparser.py | |
parent | 27c03f6b97bc1c49f5739c8e9f9bb5eb9d9c415e (diff) | |
download | paste-899bc9ef55578437f29a2c178f2d05fe2ebb372e.tar.gz |
Fixed urlparser classes to handle quoted (e.g. %20) URL paths.
Added tests for this
(Thanks Jose Galvez)
Diffstat (limited to 'paste/urlparser.py')
-rw-r--r-- | paste/urlparser.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/paste/urlparser.py b/paste/urlparser.py index 829ec78..8ba52a8 100644 --- a/paste/urlparser.py +++ b/paste/urlparser.py @@ -7,6 +7,7 @@ WSGI applications that parse the URL and dispatch to on-disk resources import os import sys import imp +import urllib import pkg_resources import mimetypes import request @@ -192,7 +193,8 @@ class URLParser(object): # None of the index files found filename = None else: - filename = self.find_file(environ, name) + # Handle quoted chars (e.g. %20) + filename = self.find_file(environ, urllib.unquote(name)) if filename is None: return None, filename else: @@ -425,7 +427,8 @@ class StaticURLParser(object): # @@: This should obviously be configurable filename = 'index.html' else: - filename = request.path_info_pop(environ) + # Handle quoted chars (e.g. %20) + filename = urllib.unquote(request.path_info_pop(environ)) full = os.path.join(self.directory, filename) if not os.path.exists(full): return self.not_found(environ, start_response) @@ -510,7 +513,8 @@ class PkgResourcesParser(StaticURLParser): # @@: This should obviously be configurable filename = 'index.html' else: - filename = request.path_info_pop(environ) + # Handle quoted chars (e.g. %20) + filename = urllib.unquote(request.path_info_pop(environ)) resource = self.resource_name + '/' + filename if not self.egg.has_resource(resource): return self.not_found(environ, start_response) |