X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjackrabbit%2Fproviders%2FJackrabbitAuthenticationProvider.java;h=ea84a073eb4862b262299cdef7a4844c14b6a7a7;hb=8b8ee149b20e2578a55e17413fa5f7399ff7ba14;hp=d9f9f379a79a9cd6c127c78c870af4b8534b6633;hpb=a3aed6b17b3a5de5f37170bf88a939fb8aae6e68;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/providers/JackrabbitAuthenticationProvider.java b/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/providers/JackrabbitAuthenticationProvider.java index d9f9f379a..ea84a073e 100644 --- a/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/providers/JackrabbitAuthenticationProvider.java +++ b/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/providers/JackrabbitAuthenticationProvider.java @@ -3,8 +3,11 @@ package org.argeo.security.jackrabbit.providers; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Properties; +import javax.jcr.Credentials; import javax.jcr.Node; +import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; @@ -13,15 +16,38 @@ import org.apache.jackrabbit.api.security.user.Group; import org.apache.jackrabbit.api.security.user.User; import org.apache.jackrabbit.api.security.user.UserManager; import org.argeo.ArgeoException; +import org.argeo.jackrabbit.JackrabbitContainer; +import org.argeo.jcr.ArgeoJcrConstants; import org.argeo.security.jcr.JcrAuthenticationProvider; +import org.osgi.framework.BundleContext; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; public class JackrabbitAuthenticationProvider extends JcrAuthenticationProvider { + // @Override + // protected Repository getRepository(String url, Credentials credentials) + // throws RepositoryException { + // JackrabbitContainer repository = new JackrabbitContainer(); + // repository.setUri(url); + // repository.setRemoteSystemCredentials(credentials); + // repository.init(); + // if (bundleContext != null) { + // // FIXME check if not already a node + // Properties properties = new Properties(); + // properties.put(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS, + // ArgeoJcrConstants.ALIAS_NODE); + // bundleContext.registerService(Repository.class.getName(), + // repository, properties); + // } + // return repository; + // } @Override protected GrantedAuthority[] getGrantedAuthorities(Session session) { try { + if (!(session instanceof JackrabbitSession)) + return super.getGrantedAuthorities(session); + JackrabbitSession jackrabbitSession = (JackrabbitSession) session; UserManager userManager = jackrabbitSession.getUserManager(); User user = (User) userManager.getAuthorizable(session.getUserID()); @@ -39,6 +65,9 @@ public class JackrabbitAuthenticationProvider extends JcrAuthenticationProvider @Override protected Boolean isEnabled(Node userHome) { try { + if (!(userHome.getSession() instanceof JackrabbitSession)) + return super.isEnabled(userHome); + UserManager userManager = ((JackrabbitSession) userHome .getSession()).getUserManager(); User user = (User) userManager.getAuthorizable(userHome