X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2FCmsSession.java;h=dda1dac1f7fa118ae4247b93e21bf7963c11e689;hb=de8f04a41db19968896b15cd7f43c819a28e7158;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..dda1dac1f 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. */ @@ -16,14 +16,14 @@ public interface CmsSession { UUID getUuid(); 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(); + } }