You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by BenD <be...@baesystems.com> on 2011/08/25 07:36:00 UTC
The subject created when creating a remote ejb using Tomcat 6 &
OpenEJB
Hey all,
I'm wondering why Subject.getSubject( AccessController.getContext() )
always returns null when used from within an EJB. I create the EJB using an
InitialContext.
Properties p = new Properties();
p.put( Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory" );
p.put( "java.naming.security.principal", "joe" );
p.put( "java.naming.security.credentials", "cool" );
p.put( "openejb.authentication.realmName", "PropertiesLogin" );
InitialContext ctx = new InitialContext( p );
SecurityChainLetterLocal localBean = (SecurityChainLetterLocal)
ctx.lookup( "SecurityChainLetterBeanLocal" );
What I'm trying to achieve is to store a token in either the UserPrincipal
or Private Credentials of the subject that I can use to communicate with
another system from my EJB.
I can't obtain the subject using the above method because I think that
AccessController.getContext() returns just the Default OpenEJB context.
I also tried to access the principal using the SessionContext obtained using
injection:
@Resource
public SessionContext sctx;
Principal p = sctx.getCallerPrincipal();
System.out.println(p.getName());
This prints the name of my principal and when debugging I can see the
principal (and the LoginContext and the subject) that tomcat has generated.
I have configured JAAS Realm as the following in the server.xml
<Realm appName="MyToken"
className="org.apache.catalina.realm.JAASRealm"
roleClassNames="com.my.GroupPrincipal"
userClassNames="com.my.UserPrincipal"/>
My problem is that the Principal "p" is
org.apache.openejb.tomcat.catalina.TomcatSecurityService.TomcatUser
which is a protected static class within the TomcatSecurityService so I am
unable to obtain the GenericPrincipal that TomcatUser stores in the private
variable tomcatPrincipal.
I am using Tomcat 6.0 and openEJB 3.1.4.
Any help would be appreciated.
Thanks
Ben
--
View this message in context: http://openejb.979440.n4.nabble.com/The-subject-created-when-creating-a-remote-ejb-using-Tomcat-6-OpenEJB-tp3767387p3767387.html
Sent from the OpenEJB User mailing list archive at Nabble.com.