[
https://issues.apache.org/jira/browse/WICKET-2836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13066116#comment-13066116
]
Igor Azarny commented on WICKET-2836:
-------------------------------------
I found workaround to solve this mod_jk, that has ForwardURICompatUnparsed
option - guess this info may be useful for others.
In any case i`ll let you know if this problem present in 1.5 when migration to
1.5 will be finished
> 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-core
> 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
> 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