X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FSystemRole.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FSystemRole.java;h=0000000000000000000000000000000000000000;hb=e018ad9078249a806f2e2ef86a6adcbd8cca3188;hp=646752d412f988d7ba3ddb60e05edcff7e0f5b67;hpb=feddb4be70a8304dd4a533efee6e14c22691b500;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java b/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java deleted file mode 100644 index 646752d41..000000000 --- a/org.argeo.cms/src/org/argeo/cms/auth/SystemRole.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.argeo.cms.auth; - -import java.util.Set; - -import javax.security.auth.Subject; -import javax.xml.namespace.QName; - -import org.argeo.api.cms.CmsConstants; -import org.argeo.cms.internal.auth.ImpliedByPrincipal; - -/** A programmatic role. */ -public interface SystemRole { - QName getName(); - - /** Whether this role is implied for this authenticated user. */ - default boolean implied(Subject subject, String context) { - return implied(getName(), subject, context); - } - - /** Whether this role is implied for this distinguished name. */ - default boolean implied(String dn, String context) { - String roleContext = RoleNameUtils.getContext(dn); - QName roleName = RoleNameUtils.getLastRdnAsName(dn); - return roleContext.equalsIgnoreCase(context) && getName().equals(roleName); - } - - /** - * Whether this role is implied for this authenticated subject. If context is - * null, it is not considered; this should be used to build user - * interfaces, but not to authorise. - */ - static boolean implied(QName name, Subject subject, String context) { - Set roles = subject.getPrincipals(ImpliedByPrincipal.class); - for (ImpliedByPrincipal role : roles) { - if (role.isSystemRole()) { - if (role.getRoleName().equals(name)) { - // !! if context is not specified, it is considered irrelevant - if (context == null) - return true; - if (role.getContext().equalsIgnoreCase(context) - || role.getContext().equals(CmsConstants.NODE_BASEDN)) - return true; - } - } - } - return false; - } -}