"David Smith" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Ok... do you need them to modify the request and/or response?  Or are you 
> trying to pull some information from the original tomcat internals?
>

>From his examples below, it looks like he wants access to the TC internals.

For the OP's original problem, for obvious security reasons TC makes it very 
hard to access the internal TC objects behind the various Facades from a 
webapps code (e.g. a Filter).  It should be pretty much impossible if you 
are running in a sandbox with the default TC security settings.  Overall, if 
you really need access to the internal TC objects, IMHO you are better off 
using a Valve, since the potential need to modify it when you upgrade TC 
versions doesn't go away.  If you can do what you need to do with the 
operations and properties exposed via JMX on the Manager, then that is 
probably cleanest.  Otherwise, you would probably need to use introspection.

> I first assumed you were attempting to modify the request or response, so 
> a wrapper is ideal.  All you have to do is create a class that extends 
> HttpServletRequestWrapper or HttpServletResponseWrapper and override the 
> methods you want.  Then in the filter, just instantiate your request or 
> response class with the original request or response in the constructor. 
> When you chain to the next filter, just pass on the new request and 
> response objects.
>
> --David
>
> Tremal Naik wrote:
>
>>That's the point, I don't know much about request/response wrapping.
>>
>>I don't need the Facade itself, what I need are the "real" Catalina
>>Request/Response objects hidden behind it. I don't know how to get
>>them from inside a Filter.
>>
>>Thanks,
>>
>>TN
>>
>>2007/9/6, David Smith <[EMAIL PROTECTED]>:
>>
>>>May I ask what exactly you want to do with the facade?  Seems like you
>>>could do what you want with a request or response wrapper instead.
>>>
>>>--David
>>>
>>>Tremal Naik wrote:
>>>
>>>
>>>>Hello,
>>>>I'v been using a valve to perform license checking in my web
>>>>application. The method invoke(Request request, Response response) had
>>>>access to the Request and Response objects, allowing me to perform
>>>>some advanced operations. For instance, I made use of instructions
>>>>like:
>>>>
>>>>Session catalinaSession = request.getSessionInternal(false);
>>>>catalinaSession.access();
>>>>
>>>>or
>>>>
>>>>Session[] managedSessions = 
>>>>request.getContext().getManager().findSessions();
>>>>
>>>>Now, I'm moving the license validation code to a Filter. How do I
>>>>access org.apache.catalina.connector.Request/Response in the method
>>>>doFilter()? I see that I can only cast to a RequestFacade object:
>>>>
>>>>public void doFilter(ServletRequest sRequest, ServletResponse
>>>>sResponse, FilterChain chain)
>>>>        throws IOException, ServletException
>>>>  {
>>>>     RequestFacade cRequest = (RequestFacade) sRequest;
>>>>     ......
>>>>
>>>>
>>>>but now, I cannot use the Facade to access the Request. How can I
>>>>solve this problem? Is it desirable accessing Catalina specific object
>>>>
>>>>from a Filter? Should I rewrite my code/ redesign my license
>>>
>>>>validation framework? It is a very complex one, hance it may require
>>>>some effort. May you redirect me to some useful articles/resources?
>>>>
>>>>
>>>>Many thanks
>>>>
>>>>
>>>>
>>>>
>>>---------------------------------------------------------------------
>>>To start a new topic, e-mail: users@tomcat.apache.org
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> 




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to