Hi,
I'm failing to get Jackrabbit to see a pre-authenticated Subject when deployed as a JCA Resource
within Glassfishv3.
My application uses the container to authenticate users, and I can see the currently logged
in user within an EJB with:
currentEJBContext.getCallerPrincipal().getName()
Alas, when I ask Jackrabbit for the UserID I always get "anonymous".
This is the method I'm using for obtaining the UserID from Jackrabbit:
public String getUserID() throws LoginException, RepositoryException {
final Session session = repository.login();
try {
return session.getUserID();
} finally {
session.logout();
}
}
My repository.xml contains the following security config:
<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager">
</AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
</LoginModule>
</Security>
I have traced the code into the RepositoryImpl.extendAuthentication method and it seems the
AccessControlContext is not propagated to the Jackrabbit JCA.
I'd really appreciate any insight into how to make this work.
-- Cory
|