On Jul 29, 2008, at 10:34 AM, Vic Simkus wrote:

> Scott Ferguson wrote:
>>> Hello
>>>
>>> Is there any way to get the current application name/path without a
>>> ServletContext?  I'm looking for this is to add it to the logging
>>> statements in a customized Acegi class that does not have direct
>>> access
>>> to any of the web application specifics.  I realize that this  
>>> might be
>>> Resin-specific, but I'm ok with that :)
>>>
>>
>> HttpServletRequest has a getContextPath() that you can use.
>>
> <snip>
>
> Hi, Scott
>
> I don't have access to anything "web related" within the class/method.
> Does Resin provide any way of extracting that sort of information  
> (shot
> in a dark here) based on the current thread?

Oh. I see.  Take a look at com.caucho.security.SecurityContext.  You  
can try:

HttpServletRequest request
    = (HttpServletRequest)  
com.caucho.security.SecurityContext.getProvider();

You could also try:

WebBeansContainer webBeans = WebBeansContainer.getCurrent();
ServletContext webApp = webBeans.getByType(ServletContext.class);

As Serge mentioned, you can also create a filter that stores the  
context in a ThreadLocal.  If you do that, make absolutely certain you  
clear the ThreadLocal at the end of the filter otherwise very bad  
things will happen.  (Basically GC and web-app reloading will break  
horribly.)

-- Scott


>
>
> Thanks
>
> -- 
> Vic Simkus
>
> Department of Neurology, UIC
> 912 South Wood St.
> Room 855N
> Chicago IL 60612
>
>
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to