Search in sources :

Example 6 with RoleReference

use of com.sun.enterprise.deployment.RoleReference in project Payara by payara.

the class EjbBundleDescriptorImpl method areResourceReferencesValid.

/**
 * Checks whether the role references my ejbs have reference roles that I have.
 */
public boolean areResourceReferencesValid() {
    // run through each of the ejb's role references, checking that the roles exist in this bundle
    for (EjbDescriptor ejbDescriptor : getEjbs()) {
        for (Iterator roleRefs = ejbDescriptor.getRoleReferences().iterator(); roleRefs.hasNext(); ) {
            RoleReference roleReference = (RoleReference) roleRefs.next();
            Role referredRole = roleReference.getRole();
            if (!referredRole.getName().equals("") && !super.getRoles().contains(referredRole)) {
                _logger.log(Level.FINE, localStrings.getLocalString("enterprise.deployment.badrolereference", "Warning: Bad role reference to {0}", new Object[] { referredRole }));
                _logger.log(Level.FINE, "Roles:  " + getRoles());
                return false;
            }
        }
    }
    return true;
}
Also used : Role(org.glassfish.security.common.Role) RoleReference(com.sun.enterprise.deployment.RoleReference) Iterator(java.util.Iterator)

Example 7 with RoleReference

use of com.sun.enterprise.deployment.RoleReference in project Payara by payara.

the class EJBSecurityManager method convertEJBRoleReferences.

/**
 * This method converts ejb role references to jacc permission objects
 * and adds them to the policy configuration object
 * It gets the list of role references from the ejb descriptor. For each
 * such role reference, create a EJBRoleRefPermission and add it to the
 * PolicyConfiguration object.
 *
 * @param eDescriptor the ejb descriptor
 * @param pcid,       the policy context identifier
 */
private static void convertEJBRoleReferences(EjbDescriptor eDescriptor, String pcid) throws PolicyContextException {
    PolicyConfiguration pc = getPolicyFactory().getPolicyConfiguration(pcid, false);
    // of PolicyConfigurationFactory
    assert pc != null;
    // Get the set of roles declared
    Set<Role> roleset = eDescriptor.getEjbBundleDescriptor().getRoles();
    Role anyAuthUserRole = new Role("**");
    boolean rolesetContainsAnyAuthUserRole = roleset.contains(anyAuthUserRole);
    List<Role> role = new ArrayList<Role>();
    String eName = eDescriptor.getName();
    for (RoleReference roleRef : eDescriptor.getRoleReferences()) {
        String rolename = roleRef.getRoleName();
        EJBRoleRefPermission ejbrr = new EJBRoleRefPermission(eName, rolename);
        String rolelink = roleRef.getSecurityRoleLink().getName();
        role.add(new Role(rolename));
        pc.addToRole(rolelink, ejbrr);
        if (_logger.isLoggable(Level.FINE)) {
            _logger.fine("JACC: Converting role-ref -> " + roleRef.toString() + " to permission with name(" + ejbrr.getName() + ") and actions (" + ejbrr.getActions() + ")" + "mapped to role (" + rolelink + ")");
        }
    }
    if (_logger.isLoggable(Level.FINE)) {
        _logger.log(Level.FINE, "JACC: Converting role-ref: Going through the list of roles not present in RoleRef elements and creating EJBRoleRefPermissions ");
    }
    for (Role r : roleset) {
        if (_logger.isLoggable(Level.FINE)) {
            _logger.log(Level.FINE, "JACC: Converting role-ref: Looking at Role =  " + r.getName());
        }
        if (!role.contains(r)) {
            String action = r.getName();
            EJBRoleRefPermission ejbrr = new EJBRoleRefPermission(eName, action);
            pc.addToRole(action, ejbrr);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine("JACC: Converting role-ref: Role =  " + r.getName() + " is added as a permission with name(" + ejbrr.getName() + ") and actions (" + ejbrr.getActions() + ")" + "mapped to role (" + action + ")");
            }
        }
    }
    /**
     * JACC MR8 add EJBRoleRefPermission for the any authenticated user role '**'
     */
    if ((!role.contains(anyAuthUserRole)) && !rolesetContainsAnyAuthUserRole) {
        String rolename = anyAuthUserRole.getName();
        EJBRoleRefPermission ejbrr = new EJBRoleRefPermission(eName, rolename);
        pc.addToRole(rolename, ejbrr);
        if (_logger.isLoggable(Level.FINE)) {
            _logger.fine("JACC: Converting role-ref: Adding any authenticated user role-ref " + " to permission with name(" + ejbrr.getName() + ") and actions (" + ejbrr.getActions() + ")" + "mapped to role (" + rolename + ")");
        }
    }
}
Also used : Role(org.glassfish.security.common.Role) RoleReference(com.sun.enterprise.deployment.RoleReference) EJBRoleRefPermission(javax.security.jacc.EJBRoleRefPermission) ArrayList(java.util.ArrayList) PolicyConfiguration(javax.security.jacc.PolicyConfiguration)

Example 8 with RoleReference

use of com.sun.enterprise.deployment.RoleReference in project Payara by payara.

the class SecurityRoleRefNode method writeDescriptor.

/**
 * write the descriptor class to a DOM tree and return it
 *
 * @param parent node in the DOM tree
 * @param node name for the root element for this DOM tree fragment
 * @param the descriptor to write
 * @return the DOM tree top node
 */
public Node writeDescriptor(Node parent, String nodeName, Descriptor descriptor) {
    if (!(descriptor instanceof RoleReference)) {
        throw new IllegalArgumentException(getClass() + " cannot handles descriptors of type " + descriptor.getClass());
    }
    RoleReference roleRef = (RoleReference) descriptor;
    Node subNode = super.writeDescriptor(parent, nodeName, roleRef);
    writeLocalizedDescriptions(subNode, descriptor);
    appendTextChild(subNode, EjbTagNames.ROLE_NAME, roleRef.getName());
    appendTextChild(subNode, EjbTagNames.ROLE_LINK, roleRef.getValue());
    return subNode;
}
Also used : RoleReference(com.sun.enterprise.deployment.RoleReference) Node(org.w3c.dom.Node) DeploymentDescriptorNode(com.sun.enterprise.deployment.node.DeploymentDescriptorNode)

Aggregations

RoleReference (com.sun.enterprise.deployment.RoleReference)8 Iterator (java.util.Iterator)5 Set (java.util.Set)4 Role (org.glassfish.security.common.Role)4 MethodPermission (com.sun.enterprise.deployment.MethodPermission)2 Result (com.sun.enterprise.tools.verifier.Result)2 ComponentNameConstructor (com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor)2 EjbBundleDescriptorImpl (org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl)2 EnvironmentProperty (com.sun.enterprise.deployment.EnvironmentProperty)1 MethodDescriptor (com.sun.enterprise.deployment.MethodDescriptor)1 OrderedSet (com.sun.enterprise.deployment.OrderedSet)1 ResourceEnvReferenceDescriptor (com.sun.enterprise.deployment.ResourceEnvReferenceDescriptor)1 ResourceReferenceDescriptor (com.sun.enterprise.deployment.ResourceReferenceDescriptor)1 ServiceReferenceDescriptor (com.sun.enterprise.deployment.ServiceReferenceDescriptor)1 DeploymentDescriptorNode (com.sun.enterprise.deployment.node.DeploymentDescriptorNode)1 SecurityRoleRefNode (com.sun.enterprise.deployment.node.SecurityRoleRefNode)1 EjbReference (com.sun.enterprise.deployment.types.EjbReference)1 MessageDestinationReferencer (com.sun.enterprise.deployment.types.MessageDestinationReferencer)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1