I think paste.httpserver.WSGIHandlerMixin.wsgi_setup should not urllib.unquote the path [1] before setting it in the wsgi environment [2]. The only pre-processing performed on the path between [1] and [2] is concerned with slashes '/'. By urllib.unquoting it is not possible to have urllib.quoted slashes within one path segment.
At least pyramid without routing fully relies on ``environ['PATH_INFO']`` [3]; by commenting [1] I succeeded to have slashes in path segments, they are handle by pyramid in [4]f. However, webob.request.BaseRequest would need to be adjusted wherever PATH_INFO from the environment is used (e.g [5]). Reasoning: The path stored in environ['PATH_INFO'] is still a path, therefore it must not be urllib.unquoted, the unquoting must happen after the path is split up in segments ([4]). [1] https://bitbucket.org/ianb/paste/src/4f5cfde87603/paste/httpserver.py#cl-180 [2] https://bitbucket.org/ianb/paste/src/4f5cfde87603/paste/httpserver.py#cl-217 [3] https://github.com/Pylons/pyramid/blob/master/pyramid/traversal.py#L594 [4] https://github.com/Pylons/pyramid/blob/master/pyramid/traversal.py#L495 [5] https://bitbucket.org/ianb/webob/src/c0bb5309cfca/webob/request.py#cl-265 -- Florian Friesdorf <f...@chaoflow.net> GPG FPR: 7A13 5EEE 1421 9FC2 108D BAAF 38F8 99A3 0C45 F083 Jabber/XMPP: f...@chaoflow.net IRC: chaoflow on freenode,ircnet,blafasel,OFTC
pgpx0V0fGXUVV.pgp
Description: PGP signature
_______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com