Re: Using RewriteFilter defined in web.xml within application
Keith Fetterman <[email protected]> Mon, 19 Jun 2006 08:44:02 -0700
| Newsgroups | gmane.text.xml.resin.user |
|---|---|
| Organization | Mariner Supply, Inc. |
| Message-ID | <[email protected]> |
Tim, I am not sure what you asking for here. But just in case, maybe this will be helpful. You can retrieve the original URI for a request using request attributes if you have used the RequestDispatcher's forward or include functionality. Take a look at pages 65 and 66 in the Servlet 2.4 specification. Here is an excerpt from the document for the attribute parameters for a forward: SRV.8.4.2 Forwarded Request Parameters Except for servlets obtained by using the getNamedDispatcher method, a servlet that has been invoked by another servlet using the forward method of RequestDispatcher has access to the path of the original request. The following request attributes must be set: javax.servlet.forward.request_uri javax.servlet.forward.context_path javax.servlet.forward.servlet_path javax.servlet.forward.path_info javax.servlet.forward.query_string These attributes are accessible from the included servlet via the getAttribute method on the request object and their values must be equal to the request URI, context path, servlet path, path info, and query string of the included servlet, respectively. If the request is subsequently included, these attributes are replaced for that include. If the included servlet was obtained by using the getNamedDispatcher method, these attributes must not be set. There are similar parameters for an include (page 65.) Tim Maurer wrote: > Silly of me to think even if I do grab the instance of my > RewriteFilter it'd be of any use. Nevermind that. > > Still, though, I'd like to retrieve the browser's original pre-rewrite > request URI without having to manually reverse the rewrites. > > Tim > > On 6/14/06, Tim Maurer <[email protected]> wrote: >> Hi all, >> In my web app I'd like to use request.getRequestURI() to dynamically >> construct URIs for various redirection purposes, but I'm >> inconvenienced by the fact that my app makes use of a RewriteFilter >> and request.getRequestURI() returns the true servlet's URI as opposed >> to the pre-rewrite URI used in the request. >> >> Am I missing an obvious way of making use of the RewriteFilter within >> my app? I've looked at com.caucho.server.webapp.Application for any >> hints in grabbing the filter from the context, but I'm stumped. >> >> Here's an example of a workflow in my app where I'd like this to work: >> >> 1. Unauthenticated user attempts to access a restricted resource >> 2. Servlet redirects user to login page, appending original request >> URI as a query parameter >> 3. User logs in, servlet redirects to originally requested URI via the >> query param >> >> Thanks for any help, >> Tim >>