0

I am Using jackrabbit 2.12.4 as a JCA (via RAR package) and beside the default JCR operations i would like to use the usermanager to add/remove/edit Users:

Session s = repo.login(...); UserManager umngr = ((JackrabbitSession) s).getUserManager();

*This throws the following exception * java.lang.ClassCastException: org.apache.jackrabbit.jca.JCASessionHandle cannot be cast to org.apache.jackrabbit.api.JackrabbitSession

Is Usermanagement only possible when embedded? using jackrabbit Could I use or build any workaround?

Best regards

Shannon
  • 731
  • 3
  • 12
  • 26

1 Answers1

0

To log into a repository from Jackrabbit JCA, you can see this topic, the session class is :

import java.io.Serializable;
import java.net.MalformedURLException;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jcr.LoginException;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@Stateless
public class OcmRepository implements Serializable {

    public Repository repository;
    public Session session;

    public OcmRepository() {
    }

    public Session getSession(String log, String mdp) throws LoginException, RepositoryException, NamingException, MalformedURLException {
        InitialContext initalContext = new InitialContext();
        repository = (Repository) initalContext.lookup("jndi/jca");
        session = repository.login(new SimpleCredentials(log, mdp.toCharArray()), null);
        return session;
    }
}
Community
  • 1
  • 1
Aroniaina
  • 1,252
  • 13
  • 31