X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fauth%2FCmsSessionImpl.java;h=8761480fe29f8ebdc57a4d7336ab4c748ab4ffd1;hb=3877d57c9cdad93179d6362a09af6b18576a512c;hp=f8d5863e69321f530ca818fc89c86b23b5f9ed64;hpb=cf6f45076ff13e17d9671ef008e1c622e0ae4e84;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsSessionImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsSessionImpl.java index f8d5863e6..8761480fe 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsSessionImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsSessionImpl.java @@ -3,6 +3,7 @@ package org.argeo.cms.internal.auth; import java.security.AccessControlContext; import java.security.AccessController; import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.time.ZonedDateTime; import java.util.Collection; @@ -28,7 +29,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.api.NodeConstants; import org.argeo.api.security.NodeSecurityUtils; -import org.argeo.cms.CmsException; import org.argeo.cms.auth.CmsSession; import org.argeo.jcr.JcrUtils; import org.osgi.framework.BundleContext; @@ -79,7 +79,7 @@ public class CmsSessionImpl implements CmsSession { this.userDn = new LdapName(authorization.getName()); this.anonymous = false; } catch (InvalidNameException e) { - throw new CmsException("Invalid user name " + authorization.getName(), e); + throw new IllegalArgumentException("Invalid user name " + authorization.getName(), e); } else { this.userDn = NodeSecurityUtils.ROLE_ANONYMOUS_NAME; @@ -135,7 +135,7 @@ public class CmsSessionImpl implements CmsSession { public synchronized Session getDataSession(String cn, String workspace, Repository repository) { // FIXME make it more robust if (workspace == null) - workspace = "main"; + workspace = NodeConstants.SYS_WORKSPACE; String path = cn + '/' + workspace; if (dataSessionsInUse.contains(path)) { try { @@ -173,8 +173,8 @@ public class CmsSessionImpl implements CmsSession { return repository.login(workspace); } }); - } catch (Exception e) { - throw new CmsException("Cannot log in " + userDn + " to JCR", e); + } catch (PrivilegedActionException e) { + throw new IllegalStateException("Cannot log in " + userDn + " to JCR", e); } } @@ -256,7 +256,7 @@ public class CmsSessionImpl implements CmsSession { try { sr = bc.getServiceReferences(CmsSession.class, "(" + CmsSession.SESSION_LOCAL_ID + "=" + localId + ")"); } catch (InvalidSyntaxException e) { - throw new CmsException("Cannot get CMS session for id " + localId, e); + throw new IllegalArgumentException("Cannot get CMS session for id " + localId, e); } ServiceReference cmsSessionRef; if (sr.size() == 1) { @@ -265,7 +265,7 @@ public class CmsSessionImpl implements CmsSession { } else if (sr.size() == 0) { return null; } else - throw new CmsException(sr.size() + " CMS sessions registered for " + localId); + throw new IllegalStateException(sr.size() + " CMS sessions registered for " + localId); } @@ -274,7 +274,7 @@ public class CmsSessionImpl implements CmsSession { try { sr = bc.getServiceReferences(CmsSession.class, "(" + CmsSession.SESSION_UUID + "=" + uuid + ")"); } catch (InvalidSyntaxException e) { - throw new CmsException("Cannot get CMS session for uuid " + uuid, e); + throw new IllegalArgumentException("Cannot get CMS session for uuid " + uuid, e); } ServiceReference cmsSessionRef; if (sr.size() == 1) { @@ -283,7 +283,7 @@ public class CmsSessionImpl implements CmsSession { } else if (sr.size() == 0) { return null; } else - throw new CmsException(sr.size() + " CMS sessions registered for " + uuid); + throw new IllegalStateException(sr.size() + " CMS sessions registered for " + uuid); } @@ -300,7 +300,7 @@ public class CmsSessionImpl implements CmsSession { } } } catch (InvalidSyntaxException e) { - throw new CmsException("Cannot get CMS sessions", e); + throw new IllegalArgumentException("Cannot get CMS sessions", e); } } }