tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Path parameters with RewriteValve
Date Sat, 14 Sep 2019 15:42:02 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Alain,

On 9/13/19 13:37, Alain Sellerin wrote:
> Tomcat version: 8.5 OS: Win10, Linux
> 
> Hi,
> 
> I'm facing an issue with an application that is using path
> parameters in conjunction with a RewriteValve.
> 
> I narrowed down the problem by using the sample application
> available here:
> https://tomcat.apache.org/tomcat-8.5-doc/appdev/sample/
> 
> Context ======
> 
> 1) I modified the webapp sample.war by creating a sub directory 
> "subpath" where I copied the file hello.jsp
> 
> The servlet URL is :
> http://127.0.0.1:8080/sample/subpath/hello.jsp
> 
> 2) I modified the servlet with the following code
> 
> Request URI:          <%= request.getRequestURI() %>
> 
> 3) I added a RewriteValve by making 2 changes in ROOT webapp a)
> create context.xml in webapps\ROOT\META-INF with the following
> content
> 
> <?xml version='1.0' encoding='utf-8'?> <Context docBase="ROOT"
> path="/" reloadable="true" crossContext="true"> <Valve
> className="org.apache.catalina.valves.rewrite.RewriteValve"/> 
> </Context>
> 
> b) create rewrite.config in  webapps\ROOT\WEB-INF with the
> following content
> 
> RewriteRule ^/foo/(.*) /sample/$1 [L]
> 
> NB: The base of the url is rewritten to "sample" when it is equals
> to "foo"
> 
> 
> Description of the problem ====================
> 
> If the request is : http://127.0.0.1:8080/sample/subpath/hello.jsp 
> The servlet response is: Request URI: /sample/subpath/hello.jsp
> 
> It is as expected. So far no problem.
> 
> If the request is : 
> http://127.0.0.1:8080/sample/subpath;pathparam=123/hello.jsp The
> servlet response is: Request URI:
> /sample/subpath;pathparam=123/hello.jsp
> 
> It is also as expected. Path params are displayed.
> 
> If the request is :
> http://127.0.0.1:8080/foo/subpath;pathparam1=123/hello.jsp The
> servlet response is: Request URI: /sample/subpath/hello.jsp
> 
> In this case, Tomcat stripped the path param. I was expecting it to
> be maintained after the rewriting of the URL.
> 
> I would like to know if there is a way to preserve path parameters 
> from the URL after a rewrite or if it is a bug that I could report
> to Bugzilla.
> 
> Feel free to ask me any question if it is not clear enough.

This sounds like a bug to me.

Can you play with the path parameter a little bit to see what might be
triggering it? You tried with "pathparam" as the name and all was
well. Then you tried "pathparam1" and it failed. What about
"pathparamX" where X is a random character from your keyboard.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl19CkoACgkQHPApP6U8
pFi9mxAAlzxiDeYqP5qlRI4PKhrNFmGhqVXfi6SBv5P2lbydMSEDi5MG/t+54eH1
TY/IgnaocZJWEeiOG4W3lESmk+++UHKK+BvnlWaZrbujTZZLSkoHleGPMQ5DW+sy
Y1dTOSVe8kvwtfckrK42Jhi20/CNydyjb0JpdD+jXnf+qas7yEC78tWUbcTXYNsr
lMOY7yXP7Y5dKE907nzrX44FYkNdyoNYRM3fGkRlsKB40TFn1tNPgn6Y0x4zGaOO
ii2DGYMGxIetflvFwvZU3nfjp+L6u0e7uLGD9twsuyhgsL8oImhUssne6XEXMRzE
4xlb/vK8Aao9YbZuVl9RnaYhTEB6pz6ytdEhOdY9ci0xkCRJVMLEFf8Tt2y4qVmm
pBl7vQtrpK3Mj6JCNXKra9N7A029B8/684HS+kfeUC5Q8fEHxbXJZX3kHJFXQRAd
q7rhe5QrX0TCQumnsoil+NKGtI5HrrM3EjkRl0sXK6JYmItJMcjchh02Y+3xit43
vp63EOJhjnGjU+mvQDjH2cqRBOXYc5kR2a7eBAkaswhDjiNY5nhJaowBpGsYruy0
f3537ufE97PIEH+przQAVEJb37W56idGkTKrJq1XOvZNNsIjl/1AGwiFM4eZVl1d
qI43T790I36VOg6C+rJIzY7SE0E217tiUp0/48SBn/5ORhi7/28=
=iPM6
-----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