tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: request.getPathInfo() gets truncated when ";" is present
Date Mon, 27 Jul 2009 14:38:15 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Peter,

On 7/24/2009 8:18 PM, maestrofjp wrote:
>> Since our framework is deployed on several different CFML servlets --
>> their implementation to get at the original http request wrapper differs
>> a bit (three different vendors).  We'll probably stick to use the poor
>> man's encoding using a modified unicode representation of ";" in the
>> end.  Another solution is to write a filter and use the getRequestURI()
>> and replace the bad path info in the request with the full length version.
> 
>> You could implement a Filter that wraps the request for these servlets.
>> The wrapped request would override the getPathInfo method and perform
>> the reverse-engineering of the path info you describe above.
> 
> Yeah, the problem is the CFML engines run on a multitude of containers (not
> just Tomcat) and I'm not a contributor to any of the open source engines at
> the moment.

That shouldn't matter: the filter should not perform differently under
other containers. If you're worried about performance, you could have
the filter initialize itself and check the version of the container and
turn itself into a no-op when it's not Tomcat running.

>> This would allow you to "patch" your servlets all at once without
>> actually modifying their code, and without going through the backflips
>> of an alternate URI encoding.
> 
> One engine is proprietary engine by Adobe -- it's been like pulling teeth to
> get them to look into the issue.  I doubt they will change their engine to
> fix this defect.

That's why I'm suggesting that you patch it from the outside: the code
is easy to write and does not require you to modify anything inside
their product.

> Yeah, I'll submit a bug report and see what happens -- I'll definitely
> submit a patch if I can find an elegant solution to it.  i'm pretty
> unfamiliar with the Tomcat code base itself.  Someone did mention about
> having to recombine stuff post path resolution -- I'm not sure exactly what
> was mention since I'm unfamiliar with the internals of Tomcat.

Start with the code for the HTTP connector
(java/org/apache/coyote/http11/Http11Processor.java). The process()
method is where the magic essentially begins.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEUEARECAAYFAkptu9YACgkQ9CaO5/Lv0PDFVwCXfWl7hmf0mQz4fmEMWXM1SDGP
SQCfRIBrZ+Cl0dVYKpbMBECj0iwTsSA=
=cgCA
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message