You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2011/09/20 14:21:08 UTC

[jira] [Resolved] (WICKET-2836) Incorrect work of WicketFilter with UTF-8 urls through proxy_ajp_module and ajp connector

     [ https://issues.apache.org/jira/browse/WICKET-2836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-2836.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5.0

WicketFilter is improved in 1.5.0 in respect to the problem described here.

> Incorrect work of  WicketFilter with UTF-8 urls through proxy_ajp_module and ajp connector
> ------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2836
>                 URL: https://issues.apache.org/jira/browse/WICKET-2836
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.7
>         Environment: Apache 2.2 http server with configured proxy_ajp_module,  Tomcat 5.5, wicket 1.4.7
>            Reporter: Igor Azarny
>            Assignee: Martin Grigorov
>             Fix For: 1.5.0
>
>         Attachments: wicket-2836.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Preconditions:
> Working application on tomacat 5.5 with non SSL HTTP/1.1 connector , that has utf-8 encoded URLs
> Connector configuration :     
> <Connector port="8080"     maxHttpHeaderSize="8192"        URIEncoding="UTF-8"            maxThreads="400"                maxKeepAliveRequests="100"               minSpareThreads="25"                maxSpareThreads="75"               enableLookups="false"                redirectPort="8443" 
>                acceptCount="100"               connectionTimeout="20000"                disableUploadTimeout="true"                compression="on"/>
> Configured virtual host on apache http server:
> Listen 81
> NameVirtualHost *:81
> <VirtualHost *:81>
>    ServerName jewelry.npa.com
>    <Proxy *>
>      AddDefaultCharset utf-8
>      Order deny,allow
>      Allow from all
>    </Proxy> 
>    ProxyPass / ajp://jewelry.npa.com:8009/
>    ProxyPassReverse / ajp://jewelry.npa.com:8009/
>    AddDefaultCharset utf-8
> </VirtualHost>
> Configured ajp connector on tomcat 5.5
> <Connector port="8009"      useBodyEncodingForURI="false"               maxHttpHeaderSize="8192"                URIEncoding="UTF-8"               maxThreads="400" 
>                maxKeepAliveRequests="100"               minSpareThreads="25"                maxSpareThreads="75"               enableLookups="false" 
>                redirectPort="8443"                acceptCount="100"               connectionTimeout="20000"                disableUploadTimeout="true" 
>                compression="on"        protocol="AJP/1.3" />
> Problem:
> All requests, that has utf-8 url and NOT served by wicket filter works ok. 
> All requests, that has utf-8 url and served by wicket filter works incorrect, because of  encoding issue with ajp connector and incorect work of WicketFilter#getRelativePath(HttpServletRequest request) lines 590 - 594.
> Explanation:
> ajp module change the percent encoding (http://en.wikipedia.org/wiki/Percent-encoding)
> Proposed fix:
> Need to use request.getServletPath() instead of request.getRequestURI() to get the relativePath, because of  
> HttpServletRequest sepecification http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpServletRequest.html 
> Please look at difference getServletPath returns DECODED value, but getRequestURI and getRequestURL - not.

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