tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Antoine Brocard - Vertical*i S.A." <broc...@verticali.com>
Subject Re: How to get context realm from servlet and filter.
Date Fri, 15 Oct 2004 08:57:51 GMT
I'm trying to use this code from withing a JAAS LoginModule (see 
yesterday's post from Michael Vorburger) and I have another problem.

My LoginModule class must be in common/lib or in application's 
classpath. It uses classes that are (normally) in server/lib (all the 
Catalina classes).

How do you make that work without copying the Catalina's jars from 
server/lib to common/lib, what I would like to avoid?



Chris Forbis wrote:
> I seem to be having an issue :)
> 
> I tried the code you provided and did this.
> 
> I am getting a null pointer when I ask for service.  Also if I do
> server.findServices() to get a list of all of them I get nothing back.
>  This is from withing a Servlet to test getting these objects.
> 
>     //See if we can get the container object
>     Server server = ServerFactory.getServer();
>     Service service = server.findService("Catalina");
>     //Next line gets NULL Pointer, because service is not found
>     Engine engine = (Engine) service.getContainer();
>     Host host = (Host) engine.findChild(engine.getDefaultHost());
>     Container[] containers = host.findChildren();
>     for (int i = 0; i < containers.length; i++) {
>       Container container = containers[i];
>       out.println("<!-- Found Container::"+container.getName());
>     }
> 
> 
> 
> On Thu, 14 Oct 2004 11:14:31 -0400, Shapira, Yoav <yoav.shapira@mpi.com> wrote:
> 
>>Hi,
>>I've posted this a number of times in the past on the list, so you can
>>STFA.  To summarize, you'd do something like this (most of these classes
>>are in the org.apache.catalina package):
>>
>>Server server = ServerFactory.getServer();
>>Service service = server.findService("Catalina");
>>Engine engine = (Engine) service.getContainer();
>>Host host = (Host) engine.findChild(engine.getDefaultHost());
>>Context context = (Context) host.findChild("myContext");
>>Realm realm = context.getRealm();
>>
>>I'm using the default service name of "Catalina" above: it should match
>>what's in your server.xml.  I'm also using "myContext" as a dummy:
>>obviously that should match your webapp name.  And finally, I'm getting
>>the Realm from the context, because that's what you asked for, but in
>>reality the Realm (or another realm) may be associated with the Host or
>>Engine as well.  So take the above code and modify it to your needs.
>>
>>As always, I caution you and everyone else to not use Tomcat-specific
>>(or container-specific in general) code unless absolutely necessary.
>>Make your app as portable as possible.  There's almost no conceivable
>>good use-case for needing the actual Realm object in your webapp.
>>
>>Yoav Shapira http://www.yoavshapira.com
>>
>>
>>
>>
>>
>>>-----Original Message-----
>>>From: Chris Forbis [mailto:cforbis@gmail.com]
>>>Sent: Thursday, October 14, 2004 11:02 AM
>>>To: Tomcat Developers List
>>>Subject: Re: How to get context realm from servlet and filter.
>>>
>>>Quick follow-up to your post.
>>>
>>>I understand what you are saying.  But I am not sure how to get access
>>>to the Container, can you point me in the correct direction?
>>>
>>>Thanks!
>>>
>>>
>>>On Thu, 14 Oct 2004 08:43:23 -0400, Shapira, Yoav
>>
>><yoav.shapira@mpi.com>
>>
>>>wrote:
>>>
>>>>Hi,
>>>>A Realm is associated with a Container, not necessarily a Context, so
>>>>the method is appropriately placed in the Container interface, a
>>
>>parent
>>
>>>>of the Context interface.  Obviously all this is not part of the
>>
>>Servlet
>>
>>>>API, so you'll have to write Tomcat-specific code to get it.
>>>>
>>>>Yoav Shapira http://www.yoavshapira.com
>>>>
>>>>
>>>>
>>>>>-----Original Message-----
>>>>>From: Chris Forbis [mailto:cforbis@gmail.com]
>>>>>Sent: Wednesday, October 13, 2004 6:24 PM
>>>>>To: tomcat-dev
>>>>>Subject: How to get context realm from servlet and filter.
>>>>>
>>>>>I am trying to get the current contexts realms from a servlet (and
>>>>>maybe a filter).  I do not see a getContext().getRealm() method.  So
>>
>>I
>>
>>>>>am guessing there is another way to get to this, but I do not see
>>
>>it.
>>
>>>>>Can any one provide some quick direction to me on this.  Thank you!
>>>>>
>>>>>Chris
>>>>>
>>>>
>>>---------------------------------------------------------------------
>>>
>>>>>To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>>>>
>>>>
>>>>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: tomcat-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>>>>
>>>>
>>>
>>>---------------------------------------------------------------------
>>
>>
>>>To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>>
>>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: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message