Stripes decodes already-decoded URI
-----------------------------------

                 Key: STS-899
                 URL: http://www.stripesframework.org/jira/browse/STS-899
             Project: Stripes
          Issue Type: Bug
          Components: ActionBean Dispatching
    Affects Versions: Release 1.5.7
         Environment: Tomcat 7.0.37 on Mac OS X
Tomcat 7.0.27 on Linux

            Reporter: Peter Štibraný


GET /zip/DownloadZip.action/Len%25ovo.zip HTTP/1.1
Host: localhost:8080
...

fails with following exception: 

java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in 
escape (%) pattern - For input string: "ov"
        at java.net.URLDecoder.decode(URLDecoder.java:173)
        at net.sourceforge.stripes.util.StringUtil.urlDecode(StringUtil.java:90)
        at 
net.sourceforge.stripes.util.HttpUtil.getRequestedPath(HttpUtil.java:59)
        at 
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:220)
        at 
net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:418)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

for action with @UrlBinding("/zip/DownloadZip.action/{archiveName}").

Problem is that HttpUtil.getRequestedPath uses StringUtil.urlDecode to decode 
servletPath + pathInfo, however both request.servletPath and request.pathInfo 
are already decoded by Servlet Container, as mentioned in the documentation.

In our case, servletPath returns "/zip/DownloadZip.action/Len%ovo.zip" while 
pathInfo returns null. HttpUtil then tries to decode this string, which fails.

However it should not even try to do the decoding on its own.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to