Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Re: org.apache.catalina.HttpRequest.setRequestURI() and valves

Jean-Francois Arcand

2004-01-15

Replies:



Green, Jeffrey wrote:

>Regarding the last post on this topic:
>
>1) sendRedirect() doesn't seem to work because ValveBase's invoke() method
>takes an org.apache.catalina.Response object and that class has no
>sendRedirect() method. Am I missing something here?
>
>
Yes :-) Downcast the object to
((HttpServletResponse)response).sendRedirect(...)

>2) if I put the valve at the engine level, will it be invoked before the
>Mapper, allowing me to call setRequestURI()?
>
>
No.

>3) that looks as you say, to be no trivial task, so I'll avoid it.
>
>
I really think sendRedirect is a way you should explore

>Thanks again for the responses.
>
>
-- Jeanfrancois

>
>
>
>
>
>>Aaah. I see. Unfortunately sendRedirect() does not work at the valve
>>level.
>>
>>  
>>
>That's not true ;-) SunOne AppServ is using that technique :-) Why are
>you saying it doesn't work at the valve level?
>
>
>
>>I could use that solution only if I implemented the redirect for each
>>specific webapp, but this is a bit too much code duplication to be
>>productive / condusive to change.
>>
>>  
>>
>Why? It depends where you put the valve? Remember you can also place
>your valve at the engine level.
>
>
>
>>It seems that this decision has crippled
>>some of Tomcat's functionality - whereas before, I could redirect
>>requests across a whole host, now I can only do that per webapp.
>>Was anything else implemented to achieve such functionality instead?
>>
>>  
>>
>Yes, by using the mapper directly. But that's a lot of works (you need
>to understand how the mapper works, etc.). The main object to look at
>is MappingData where the result of the mapping is stored.
>
>-- Jeanfrancois
>
>
>
>
>
>
>>Thanks
>>again.
>>
>>-----Original Message-----
>>From: Jeanfrancois Arcand [mailto:jfarcand@(protected)]
>>Sent: Thursday, January 15, 2004 11:21 AM
>>To: Tomcat Users List
>>Subject: Re: org.apache.catalina.HttpRequest.setRequestURI() and valves
>>
>>
>>
>>
>>Green, Jeffrey wrote:
>>
>>
>>
>>  
>>
>>>Hello all. Using valves in Tomcat 4, we successfully managed to
>>>intercept requests to specific contexts and direct them elsewhere. For
>>>example, we could intercept all requests to /SECRETWEBAPP and redirect
>>>    
>>>
>them
>
>
>>>  
>>>
>>>    
>>>
>>to /.
>>
>>
>>  
>>
>>>In order to accomplish this, we used valves which would call
>>>setRequestURI("/") on all requests that were prefixed with
>>>"/SECRETWEBAPP". Unfortunately, this technique no longer seems to work
>>>with Tomcat 5. Does anyone know if anything changed regarding such
>>>usage of this method or if there is a better way to do this?
>>>
>>>
>>>  
>>>
>>>    
>>>
>>Yes, the HTTP Mapper has been completely re-written. The mapping occurs
>>*before* entering the pipeline (valve) instead of *after* in Tomcat 4.
>>You may want to try a re-direct instead. Something like:
>>
>>if ( bla bla)
>>          hresponse.sendRedirect(
>>               hresponse.encodeRedirectURL("/"));
>>
>>
>>-- Jeanfrancois
>>
>>
>>
>>
>>  
>>
>>>Thanks.
>>>
>>>----------------------------------------------------------------------
>>>-
>>>-------
>>>This message is intended only for the personal and confidential use of the
>>>designated recipient(s) named above. If you are not the intended
>>>    
>>>
>recipient
>
>
>>>  
>>>
>>>    
>>>
>>of
>>
>>
>>  
>>
>>>this message you are hereby notified that any review, dissemination,
>>>distribution or copying of this message is strictly prohibited. This
>>>communication is for information purposes only and should not be
>>>regarded
>>>  
>>>
>>>    
>>>
>>as
>>
>>
>>  
>>
>>>an offer to sell or as a solicitation of an offer to buy any financial
>>>product, an official confirmation of any transaction, or as an
>>>official statement of Lehman Brothers. Email transmission cannot be
>>>guaranteed to
>>>  
>>>
>>>    
>>>
>>be
>>
>>
>>  
>>
>>>secure or error-free. Therefore, we do not represent that this
>>>information
>>>  
>>>
>>>    
>>>
>>is
>>
>>
>>  
>>
>>>complete or accurate and it should not be relied upon as such. All
>>>information is subject to change without notice.
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>>For additional commands, e-mail: tomcat-user-help@(protected)
>>>
>>>
>>>
>>>
>>>  
>>>
>>>    
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>For additional commands, e-mail: tomcat-user-help@(protected)
>>
>>
>>
>>-----------------------------------------------------------------------
>>-------
>>This message is intended only for the personal and confidential use of the
>>designated recipient(s) named above. If you are not the intended recipient
>>  
>>
>of
>
>
>>this message you are hereby notified that any review, dissemination,
>>distribution or copying of this message is strictly prohibited. This
>>communication is for information purposes only and should not be regarded
>>  
>>
>as
>
>
>>an offer to sell or as a solicitation of an offer to buy any financial
>>product, an official confirmation of any transaction, or as an official
>>statement of Lehman Brothers. Email transmission cannot be guaranteed to
>>  
>>
>be
>
>
>>secure or error-free. Therefore, we do not represent that this information
>>  
>>
>is
>
>
>>complete or accurate and it should not be relied upon as such. All
>>information is subject to change without notice.
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>For additional commands, e-mail: tomcat-user-help@(protected)
>>
>>
>>
>>
>>  
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>For additional commands, e-mail: tomcat-user-help@(protected)
>
>
>
>------------------------------------------------------------------------------
>This message is intended only for the personal and confidential use of the
>designated recipient(s) named above. If you are not the intended recipient of
>this message you are hereby notified that any review, dissemination,
>distribution or copying of this message is strictly prohibited. This
>communication is for information purposes only and should not be regarded as
>an offer to sell or as a solicitation of an offer to buy any financial
>product, an official confirmation of any transaction, or as an official
>statement of Lehman Brothers. Email transmission cannot be guaranteed to be
>secure or error-free. Therefore, we do not represent that this information is
>complete or accurate and it should not be relied upon as such. All
>information is subject to change without notice.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>For additional commands, e-mail: tomcat-user-help@(protected)
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.