X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FHomeRepository.java;h=6900be3addf85f1a9015e20f00c78599ec0afb37;hb=7add600d7837fb72f019de190bd5cafd817a0a0c;hp=5b7c7773d218b6bf40b39e24502fa20d580f4e6d;hpb=673d555da09a1e03dc97058f178229d3b742908f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java index 5b7c7773d..6900be3ad 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java @@ -14,7 +14,7 @@ import javax.naming.ldap.LdapName; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; -import org.argeo.ArgeoException; +import org.apache.jackrabbit.core.security.SecurityConstants; import org.argeo.cms.CmsException; import org.argeo.cms.auth.AuthConstants; import org.argeo.jcr.ArgeoJcrConstants; @@ -90,6 +90,10 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return; if (session.getUserID().equals(AuthConstants.ROLE_ANONYMOUS)) return; + if (session.getUserID().equals(AuthConstants.ROLE_KERNEL)) + return; + if (session.getUserID().equals(SecurityConstants.ADMIN_ID)) + return; if (checkedUsers.contains(username)) return; @@ -174,7 +178,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return userProfile; } catch (RepositoryException e) { JcrUtils.discardQuietly(session); - throw new ArgeoException("Cannot sync node security model for " + username, e); + throw new CmsException("Cannot sync node security model for " + username, e); } } @@ -184,7 +188,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar try { dn = new LdapName(username); } catch (InvalidNameException e) { - throw new ArgeoException("Invalid name " + username, e); + throw new CmsException("Invalid name " + username, e); } String userId = dn.getRdn(dn.size() - 1).getValue().toString(); int atIndex = userId.indexOf('@'); @@ -194,7 +198,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar return base + '/' + JcrUtils.firstCharsToPath(domain, 2) + '/' + domain + '/' + JcrUtils.firstCharsToPath(name, 2) + '/' + name; } else if (atIndex == 0 || atIndex == (userId.length() - 1)) { - throw new ArgeoException("Unsupported username " + userId); + throw new CmsException("Unsupported username " + userId); } else { return base + '/' + JcrUtils.firstCharsToPath(userId, 2) + '/' + userId; }