X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2FCmsSession.java;h=b69e54f98a5cd7f7ea59064ba2cb9d0edfeb4d38;hb=HEAD;hp=18d53cee88a1daa2ba2c391ad1034ab5b022eadc;hpb=7d2a002f5dcfe8a8c7b29803b70d4b1aff265ed1;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/CmsSession.java b/org.argeo.api.cms/src/org/argeo/api/cms/CmsSession.java index 18d53cee8..b69e54f98 100644 --- a/org.argeo.api.cms/src/org/argeo/api/cms/CmsSession.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/CmsSession.java @@ -3,8 +3,8 @@ package org.argeo.api.cms; import java.time.ZonedDateTime; import java.util.Locale; import java.util.UUID; +import java.util.function.Consumer; -import javax.naming.ldap.LdapName; import javax.security.auth.Subject; /** An authenticated user session. */ @@ -13,17 +13,17 @@ public interface CmsSession { final static String SESSION_UUID = "entryUUID"; final static String SESSION_LOCAL_ID = "uniqueIdentifier"; - UUID getUuid(); + UUID uuid(); String getUserRole(); - - LdapName getUserDn(); + + String getUserDn(); String getLocalId(); String getDisplayName(); // Authorization getAuthorization(); - + Subject getSubject(); boolean isAnonymous(); @@ -37,4 +37,10 @@ public interface CmsSession { boolean isValid(); void registerView(String uid, Object view); + + void addOnCloseCallback(Consumer onClose); + + public static boolean hasCmsSession(Subject subject) { + return !subject.getPrivateCredentials(CmsSessionId.class).isEmpty(); + } }