private boolean checkCallerSecurityIdentityRole(String roleName) { final SecurityIdentity identity = getCallerSecurityIdentity(); if("**".equals(roleName)) { return !identity.isAnonymous(); } Roles roles = identity.getRoles("ejb", true); if(roles.contains(roleName)) { return true; } if(securityMetaData.getSecurityRoleLinks() != null) { Collection<String> linked = securityMetaData.getSecurityRoleLinks().get(roleName); if(linked != null) { for (String role : roles) { if (linked.contains(role)) { return true; } } } } return false; }
public boolean isCallerInRole(final String roleName) throws IllegalStateException { if (isSecurityDomainKnown()) { if (enableJacc) { Policy policy = WildFlySecurityManager.isChecking() ? doPrivileged((PrivilegedAction<Policy>) Policy::getPolicy) : Policy.getPolicy(); ProtectionDomain domain = new ProtectionDomain(null, null, null, JaccInterceptor.getGrantedRoles(getCallerSecurityIdentity())); return policy.implies(domain, new EJBRoleRefPermission(getComponentName(), roleName)); } else { return checkCallerSecurityIdentityRole(roleName); } } else if (WildFlySecurityManager.isChecking()) { return WildFlySecurityManager.doUnchecked((PrivilegedAction<Boolean>) () -> serverSecurityManager.isCallerInRole(getComponentName(), policyContextID, securityMetaData.getSecurityRoles(), securityMetaData.getSecurityRoleLinks(), roleName)); } else { return this.serverSecurityManager.isCallerInRole(getComponentName(), policyContextID, securityMetaData.getSecurityRoles(), securityMetaData.getSecurityRoleLinks(), roleName); } }
public boolean isCallerInRole(final String roleName) throws IllegalStateException { return utilities.getSecurityManager().isCallerInRole(securityMetaData.getSecurityRoles(), securityMetaData.getSecurityRoleLinks(), roleName); }