RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
Howdy, 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 /. Why would you do this with a valve? Use a Filer, which is spec-compliant and portable. This is a trivial filter implementation. Yoav Shapira This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
Howdy, 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 /. Why would you do this with a valve? Use a Filer, which is spec-compliant and portable. This is a trivial filter implementation. Typo: Filter instead of Filer above. Meaning a javax.servlet.Filter implementation. Yoav Shapira This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
We can't use a filter because filters are per-webapp whereas valves are per host. This is a hostwide redirect. We need to be able to redirect users from /SOME/GARBAGE/HERE/actualWebappDirectory to /actualWebappDirectory for all webapps (without having to require everyone to deploy the same exact filter in all webapps). AFAIK, this is the only host-wide way, although it no longer seems to work in TC5 :\ -Original Message- From: Shapira, Yoav [mailto:[EMAIL PROTECTED] Sent: Thursday, January 15, 2004 10:22 AM To: Tomcat Users List Subject: RE: org.apache.catalina.HttpRequest.setRequestURI() and valves Howdy, 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 /. Why would you do this with a valve? Use a Filer, which is spec-compliant and portable. This is a trivial filter implementation. Yoav Shapira This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
Aaah. I see. Unfortunately sendRedirect() does not 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. 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? Thanks again. -Original Message- From: Jeanfrancois Arcand [mailto:[EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: org.apache.catalina.HttpRequest.setRequestURI() and valves
Green, Jeffrey wrote: 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:[EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
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? 2) if I put the valve at the engine level, will it be invoked before the Mapper, allowing me to call setRequestURI()? 3) that looks as you say, to be no trivial task, so I'll avoid it. Thanks again for the responses. 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:[EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional
Re: org.apache.catalina.HttpRequest.setRequestURI() and valves
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:[EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL 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
RE: org.apache.catalina.HttpRequest.setRequestURI() and valves
AHA! That worked like gold. Thanks for the info! I didn't realize that Tomcat's Response was a superclass of HttpServletResponse. One thing I did note though, is that one can't invoke the next valve in the chain after sending a redirect (as far as I can tell). I suppose this just means that a valve that behaves in such a manner must be the last one in the chain or must break out of the chain midway by simply returning. Again, thanks. -Original Message- From: Jeanfrancois Arcand [mailto:[EMAIL PROTECTED] Sent: Thursday, January 15, 2004 1:26 PM To: Tomcat Users List Subject: Re: org.apache.catalina.HttpRequest.setRequestURI() and valves 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:[EMAIL 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- --- This message is intended only for the personal and confidential use of the designated