One thing to clarify the problem:
I'm trying to use authentication and authorization in whiteboard servlet.
There is such a code in doGet for debug:

LoginContext lc = new LoginContext("umrp-realm", callbackHandler);
lc.login();
System.out.println(lc.getSubject().getPrincipals());
Subject subject = Subject.getSubject(AccessController.getContext());
System.out.println(subject == null);

I have a subject in loginContext after login, but subject in
AccessControlContext is null.
So calling the secured methods fails with
/java.security.AccessControlException No JAAS login present/.
Am I doing something wrong?


kuvalda wrote
> Hi, Christian!
> I have questions about getting the authentication result in a place
> different of where we do authentication.
> There is such description of Subject.getSubject method In Javadoc:
*
> Get the Subject associated with the provided AccessControlContext. 
> The AccessControlContext may contain many Subjects (from nested doAs
> calls). In this situation, the most recent Subject associated with the
> AccessControlContext is returned.
*
> 
> So we can get that:
> 1. there is no any Subject in AccessControlContext, if we don't call any
> secured method. It means, that  just after a simple LoginContext.login()
> we can't get a Subject from AccessControlContext.
> 2. If other Subject calls some secured method in the same thread, it
> replaces the current Subject in AccessControlContext, and the result of
> Subject.getSubject() will be different.
> 
> Thanks!
> Pavel
> cschneider wrote
>> There is one more thing you should look into. Quite often you will need 
>> the authentication result in a place different from the place where you 
>> do the authentication.
>> Passing the subject around is not very effective.
>> 
>> Luckily there is a quite unknown way in JAAS to do this:
>> 
>> AccessControlContext acc = AccessController.getContext();
>> Subject subject = Subject.getSubject(acc);
>> 
>> This allows to get the subject at any place in your code.





-----
Pavel
--
View this message in context: 
http://karaf.922171.n3.nabble.com/Security-in-Module-tp4039307p4040447.html
Sent from the Karaf - User mailing list archive at Nabble.com.

Reply via email to