ServletWebRequest.getRelativePathPrefixToContextRoot() double decodes servlet
path
----------------------------------------------------------------------------------
Key: WICKET-1624
URL: https://issues.apache.org/jira/browse/WICKET-1624
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 1.4-M1, 1.3.3
Environment: Tomcat 6.0.16 on Mac OS X.
Reporter: Doug Donohoe
Priority: Blocker
Fix For: 1.4-M2
The following line in ServletWebRequest.getRelativePathPrefixToContextRoot()
String servletPath = RequestUtils.decode(getServletPath());
causes problems with relative path for CSS and images. I believe it is because
the servlet path is already URL decoded. Running it again causes things that
shouldn't be decoded to be decoded. For example,
%2B gets URL decoded to a plus (+). But, running it again causes any + to be
decoded to a space. This causes the endsWith() check to fail when it
shouldn't. Because that fails, more "../" get prepended than is correct.
I'll attach a quickstart which demonstrates the problem.
I think the fix is to remove the RequestUtils.decode() call above, but someone
closer to the code might feel this breaks something.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.