X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fauth%2FCmsSessionImpl.java;h=82a6972cbf0e5660de9d6cf02728ba1e72e01aae;hb=5d7dadc47fe52f2dcfe2cd13a4165ad4e3ffbb57;hp=9b667717beaf80a60463d7f5068b87c99979798a;hpb=d66d81530f1da58e2e2c5d25e0a5dc30ad32b848;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 9b667717b..82a6972cb 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 @@ -15,7 +15,9 @@ import java.util.Map; import java.util.Set; import java.util.UUID; +import javax.crypto.SecretKey; import javax.jcr.Repository; +import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; @@ -123,6 +125,10 @@ public class CmsSessionImpl implements CmsSession { return Subject.getSubject(initialContext); } + public Set getSecretKeys() { + return getSubject().getPrivateCredentials(SecretKey.class); + } + public synchronized Session getDataSession(String cn, String workspace, Repository repository) { // FIXME make it more robust if (workspace == null) @@ -173,6 +179,8 @@ public class CmsSessionImpl implements CmsSession { if (additionalDataSessions.contains(session)) { JcrUtils.logoutQuietly(session); additionalDataSessions.remove(session); + if (log.isTraceEnabled()) + log.trace("Remove additional data session " + session); return; } String path = cn + '/' + session.getWorkspace().getName(); @@ -182,6 +190,8 @@ public class CmsSessionImpl implements CmsSession { Session registeredSession = dataSessions.get(path); if (session != registeredSession) log.warn("Data session " + path + " not consistent for " + userDn); + if (log.isTraceEnabled()) + log.trace("Released data session " + session + " for " + path); notifyAll(); }