Avi Avi schrieb:
Rainer,

Thanks a lot for the response.

I see similar results as yours in mod_jk.log. So it seems mod_jk is doing
the right thing and passing %25 unescaped.

The error is on the application side while reading the query param. Here is
the snippet:

2008-05-04 10:00:47,684 ERROR [orb.servlet.api] tracker doPost():
Exception=java.lang.IllegalArgumentException: URLDecoder: Illegal hex
characters in escape (%) pattern - For input string: "zz" :URLDecoder:
Illegal hex characters in escape (%) pattern - For input string: "zz"

Here is the request:
http://www.foo.com/bar?a=param_with_%25zz
(I put "zz" at the end to make sure that it wasn't something due to being
the last char.)

What is throwing me off is that the request works fine on port 8080. All I
am doing is calling request.getParameter().

If I do the same for the above request (forwarded via mod_jk), I get "param_with_%zz" as a result.

So it might be a JBoss issue, especially if you can still see the %25zz in the mod_jk packet dump.

I am not sure if it changes anything but I am using Jboss and not Tomcat.

Thanks again
Avi

Regards,

Rainer

On Sun, May 4, 2008 at 4:58 AM, Rainer Jung <[EMAIL PROTECTED]> wrote:

Hi Avi,

Avi Avi schrieb:

 My question is regarding mod_jk/tomcat integration.
I am using Apache 2.0.54 and mod_jk 1.2.26.

When I request the following url to my application, I get an HTTP 500
response (internal server error).
http://www.foo.com/bar?a=param_with_%25

But if I send the request to jboss directly (port 8080), the above url
works.
So, I am pretty sure that this is a double decoding issue due to %25.

I have tried this with all 3 jkOptions (ForwardURIProxy,
ForwardURICompatUnparsed, ForwardURIEscaped, ForwardURICompat)
and nothing seems to work.

Am I missing something here ? Any help/tips will be greatly appreciated.

There no obvious problem about %25. When I try to send it, my mod_jk log
contains (debug log level) something like:

ajp_connection_tcp_send_message::jk_ajp_common.c (1011):
0220    2D 61 67 65 3D 30 00 A0 08 00 01 30 00 05 00 10  -
-age=0.....0....

A0 08: Content length following
00 01 30 00: content length is "0"
05: Query string following
00 10: length of query string is 16

ajp_connection_tcp_send_message::jk_ajp_common.c (1011):
0230    61 3D 70 61 72 61 6D 5F 77 69 74 68 5F 25 32 35  -
a=param_with_%25

16 Bytes with query string "a=param_with_%25"

ajp_connection_tcp_send_message::jk_ajp_common.c (1011):
0240    00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00  -
................

followed by a terminating "00" and "ff" (request terminator).

ajp_send_request::jk_ajp_common.c (1489): (ajp13) request body to send 0 -
request body to resend 0

Can you also see your request string including the "%25" in such a way in
the debug log?


Thanks
Avi

Can you see, where error 500 comes from (Tomcat or httpd)?

What does your tomcat access log contain, if you enable it in server.xml?
Does it show the correct request line?

How does you URL realy look like (is %25 really in the query string and is
it really the last part of it)?

Please use the default settings for JkOptions (no option at all) for
testing.

Regards,

Rainer

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to