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.

Reply via email to