I am having a problem with Apache/mod_jk/Ajp13Connector/Tomcat.
If I make a request to a servlet with '%' in the path, the URL appears to be
being decoded twice.
I have a servlet mapping of escape -> escape.jsp. That JSP contains the
following:
<%= request.getPathInfo() %>
<%= request.getRequestURL() %>
A request to http://localhost/escape/a%25sdf returns
/a f
http://sekhmet.datcon.co.uk/escape/a%sdf
And http://sekhmet/escape/a%21sdf gives
/a!sdf
http://sekhmet.datcon.co.uk/escape/a!sdf
Note that getRequestURL() returns the URL *without* decoding it, while
getPathInfo() does decode. So it looks like the URL is already decoded
before it reaches Tomcat (by Apache or the connector).
I would expect the values of getPathInfo() to be '/a%sdf' and '/a!sdf', and
the values of getRequestURL to contain '%25' and '%21'.
Does anyone know what's going on? The relevant bits of my configuration
files are below.
Thanks
Ben
-- -- --
httpd.conf
LoadModule jk_module libexec/mod_jk.so
JkWorkersFile "/opt/websrv/tomcat/conf/workers.properties"
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /escape/* ajp13
workers.properties
worker.list=ajp13
worker.ajp13.type=ajp13
worker.tomcat_home=/opt/websrv/tomcat
worker.java_home=/opt/j2sdk1.4.1
ps=/
worker.ajp13.port=8009
worker.ajp13.host=localhost
server.xml
<Connector className="org.Apache.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="1000"
acceptCount="10" debug="0"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
|