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

Attachment: 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

Reply via email to