[ https://issues.apache.org/jira/browse/WICKET-2836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Vaynberg resolved WICKET-2836. ----------------------------------- Assignee: Igor Vaynberg Resolution: Won't Fix request.getservletpath() wont work because it doesnt return enough information, also, there doesnt seem to be any other method we can use. perhaps you can consider your proxy not to mangle urls. > 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: Igor Vaynberg > 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. - You can reply to this email to add a comment to the issue online.