Fix issue when admin user uses the home repository
authorBruno Sinou <bsinou@argeo.org>
Wed, 7 Sep 2016 10:44:15 +0000 (10:44 +0000)
committerBruno Sinou <bsinou@argeo.org>
Wed, 7 Sep 2016 10:44:15 +0000 (10:44 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@9100 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java
org.argeo.security.jackrabbit/src/org/argeo/security/jackrabbit/SystemJackrabbitLoginModule.java

index d1dfb7dd684c7a7daa435d54f8f0b0cd996ab872..c0cf3e02566f4e989653d7de6f0cca7267643666 100644 (file)
@@ -14,6 +14,7 @@ import javax.naming.ldap.LdapName;
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 
+import org.apache.jackrabbit.core.security.SecurityConstants;
 import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
@@ -92,6 +93,8 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar
                        return;
                if (session.getUserID().equals(AuthConstants.ROLE_KERNEL))
                        return;
+               if (session.getUserID().equals(SecurityConstants.ADMIN_ID))
+                       return;
 
                if (checkedUsers.contains(username))
                        return;
index 688791e2cfbe6969c22c1ba470cf9e46a95dfd15..62f8fa02b1d23860011f456253e84b54cabadc9a 100644 (file)
@@ -32,7 +32,7 @@ public class SystemJackrabbitLoginModule implements LoginModule {
        public boolean commit() throws LoginException {
                Set<DataAdminPrincipal> initPrincipal = subject.getPrincipals(DataAdminPrincipal.class);
                if (!initPrincipal.isEmpty()) {
-                       subject.getPrincipals().add(new AdminPrincipal(initPrincipal.iterator().next().getName()));
+                       subject.getPrincipals().add(new AdminPrincipal(SecurityConstants.ADMIN_ID));
                        return true;
                }