Details
Description
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.
Attachments
Attachments
Issue Links
- is duplicated by
-
WICKET-1663 Wicket tries to decode servlet path that already has been decoded by servlet container
- Resolved