Search in sources :

Example 16 with Match

use of com.sun.identity.entitlement.xacml3.core.Match in project OpenAM by OpenRock.

the class XACMLPrivilegeUtils method entitlementSubjectToAnyOfList.

// TODO: not used now, use, test, fix and verify
public static List<AnyOf> entitlementSubjectToAnyOfList(EntitlementSubject es) {
    if (es == null) {
        return null;
    }
    List<AnyOf> anyOfList = new ArrayList<AnyOf>();
    AnyOf anyOf = new AnyOf();
    anyOfList.add(anyOf);
    List<AllOf> allOfList = anyOf.getAllOf();
    AllOf allOf = new AllOf();
    allOfList.add(allOf);
    List<Match> matchList = allOf.getMatch();
    if (es instanceof UserSubject) {
        UserSubject us = (UserSubject) es;
        String userId = us.getID();
        Match match = new Match();
        matchList.add(match);
        match.setMatchId("user-subject-match");
        AttributeValue attributeValue = new AttributeValue();
        String dataType = "datatype";
        attributeValue.setDataType(dataType);
        attributeValue.getContent().add(userId);
        AttributeDesignator attributeDesignator = new AttributeDesignator();
        String category = "subject-category";
        attributeDesignator.setCategory(category);
        String attributeId = "user-subject:user-id";
        attributeDesignator.setAttributeId(attributeId);
        String dt = "xs;string";
        attributeDesignator.setDataType(dt);
        String issuer = "subject:issuer";
        // attributeDesignator.setIssuer(issuer); TODO: verify and fix
        boolean mustBePresent = true;
        attributeDesignator.setMustBePresent(mustBePresent);
        match.setAttributeValue(attributeValue);
        match.setAttributeDesignator(attributeDesignator);
    }
    return anyOfList;
}
Also used : AttributeValue(com.sun.identity.entitlement.xacml3.core.AttributeValue) AttributeDesignator(com.sun.identity.entitlement.xacml3.core.AttributeDesignator) AnyOf(com.sun.identity.entitlement.xacml3.core.AnyOf) UserSubject(com.sun.identity.entitlement.UserSubject) ArrayList(java.util.ArrayList) AllOf(com.sun.identity.entitlement.xacml3.core.AllOf) Match(com.sun.identity.entitlement.xacml3.core.Match)

Example 17 with Match

use of com.sun.identity.entitlement.xacml3.core.Match in project OpenAM by OpenRock.

the class XACMLPrivilegeUtils method resourceNameToNotMatch.

public static Match resourceNameToNotMatch(String resourceName, String applicationName) {
    if (resourceName == null || resourceName.length() == 0) {
        return null;
    }
    Match match = new Match();
    String matchId = XACMLConstants.ENTITLEMENT_RESOURCE_NO_MATCH + ":" + applicationName;
    match.setMatchId(matchId);
    AttributeValue attributeValue = new AttributeValue();
    String dataType = XACMLConstants.XS_STRING;
    attributeValue.setDataType(dataType);
    attributeValue.getContent().add(resourceName);
    AttributeDesignator attributeDesignator = new AttributeDesignator();
    String category = XACMLConstants.XACML_RESOURCE_CATEGORY;
    attributeDesignator.setCategory(category);
    String attributeId = XACMLConstants.XACML_RESOURCE_ID;
    attributeDesignator.setAttributeId(attributeId);
    String dt = XACMLConstants.XS_STRING;
    attributeDesignator.setDataType(dt);
    // TODO: not a constant?
    String issuer = XACMLConstants.RESOURCE_ISSUER;
    // attributeDesignator.setIssuer(issuer); TODO: verify and fix
    boolean mustBePresent = true;
    attributeDesignator.setMustBePresent(mustBePresent);
    match.setAttributeValue(attributeValue);
    match.setAttributeDesignator(attributeDesignator);
    return match;
}
Also used : AttributeValue(com.sun.identity.entitlement.xacml3.core.AttributeValue) AttributeDesignator(com.sun.identity.entitlement.xacml3.core.AttributeDesignator) Match(com.sun.identity.entitlement.xacml3.core.Match)

Example 18 with Match

use of com.sun.identity.entitlement.xacml3.core.Match in project OpenAM by OpenRock.

the class XACMLPrivilegeUtils method entitlementSubjectToAnyOf.

public static AnyOf entitlementSubjectToAnyOf(EntitlementSubject es) throws JAXBException {
    if (es == null) {
        return null;
    }
    AnyOf anyOf = new AnyOf();
    List<AllOf> allOfList = anyOf.getAllOf();
    AllOf allOf = new AllOf();
    allOfList.add(allOf);
    List<Match> matchList = allOf.getMatch();
    Match match = new Match();
    matchList.add(match);
    match.setMatchId(XACMLConstants.JSON_SUBJECT_MATCH);
    AttributeValue attributeValue = new AttributeValue();
    String dataType = XACMLConstants.JSON_SUBJECT_DATATYPE + ":" + es.getClass().getName();
    attributeValue.setDataType(dataType);
    String esString = es.getState();
    attributeValue.getContent().add(esString);
    AttributeDesignator attributeDesignator = new AttributeDesignator();
    String category = XACMLConstants.XACML_ACCESS_SUBJECT_CATEGORY;
    attributeDesignator.setCategory(category);
    String attributeId = XACMLConstants.JSON_SUBJECT_ID;
    attributeDesignator.setAttributeId(attributeId);
    String dt = XACMLConstants.JSON_SUBJECT_DATATYPE + ":" + es.getClass().getName();
    attributeDesignator.setDataType(dt);
    // TODO: not a constant?
    String issuer = XACMLConstants.SUBJECT_ISSUER;
    //attributeDesignator.setIssuer(issuer); //TODO: verify and fix
    boolean mustBePresent = true;
    attributeDesignator.setMustBePresent(mustBePresent);
    match.setAttributeValue(attributeValue);
    match.setAttributeDesignator(attributeDesignator);
    return anyOf;
}
Also used : AttributeValue(com.sun.identity.entitlement.xacml3.core.AttributeValue) AttributeDesignator(com.sun.identity.entitlement.xacml3.core.AttributeDesignator) AnyOf(com.sun.identity.entitlement.xacml3.core.AnyOf) AllOf(com.sun.identity.entitlement.xacml3.core.AllOf) Match(com.sun.identity.entitlement.xacml3.core.Match)

Example 19 with Match

use of com.sun.identity.entitlement.xacml3.core.Match in project OpenAM by OpenRock.

the class XACMLPrivilegeUtils method actionNamesToAnyOfList.

public static List<AnyOf> actionNamesToAnyOfList(Set<String> actionNames, String applicationName) {
    if (actionNames == null || actionNames.isEmpty()) {
        return null;
    }
    List<AnyOf> anyOfList = new ArrayList<AnyOf>();
    AnyOf anyOf = new AnyOf();
    anyOfList.add(anyOf);
    List<AllOf> allOfList = anyOf.getAllOf();
    for (String actionName : actionNames) {
        AllOf allOf = new AllOf();
        List<Match> matchList = allOf.getMatch();
        matchList.add(actionNameToMatch(actionName, applicationName));
        allOfList.add(allOf);
    }
    return anyOfList;
}
Also used : AnyOf(com.sun.identity.entitlement.xacml3.core.AnyOf) ArrayList(java.util.ArrayList) AllOf(com.sun.identity.entitlement.xacml3.core.AllOf) Match(com.sun.identity.entitlement.xacml3.core.Match)

Example 20 with Match

use of com.sun.identity.entitlement.xacml3.core.Match in project OpenAM by OpenRock.

the class XACMLPrivilegeUtils method getActionNamesFromMatches.

static Set<String> getActionNamesFromMatches(List<Match> matches) {
    if (matches == null) {
        return null;
    }
    Set<String> actionNames = new HashSet<String>();
    for (Match match : matches) {
        String matchId = match.getMatchId();
        if ((matchId != null) && matchId.indexOf(":action-match:") != -1) {
            AttributeValue attributeValue = match.getAttributeValue();
            if (attributeValue != null) {
                List<Object> contentList = attributeValue.getContent();
                if ((contentList != null) && !contentList.isEmpty()) {
                    // FIXME: log a warning if more than one element
                    Object obj = contentList.get(0);
                    actionNames.add(obj.toString());
                }
            }
        }
    }
    return actionNames;
}
Also used : AttributeValue(com.sun.identity.entitlement.xacml3.core.AttributeValue) JSONObject(org.json.JSONObject) HashSet(java.util.HashSet) Match(com.sun.identity.entitlement.xacml3.core.Match)

Aggregations

Match (com.sun.identity.entitlement.xacml3.core.Match)17 AttributeValue (com.sun.identity.entitlement.xacml3.core.AttributeValue)12 AnyOf (com.sun.identity.entitlement.xacml3.core.AnyOf)9 AllOf (com.sun.identity.entitlement.xacml3.core.AllOf)7 AttributeDesignator (com.sun.identity.entitlement.xacml3.core.AttributeDesignator)7 JSONObject (org.json.JSONObject)7 HashSet (java.util.HashSet)6 ArrayList (java.util.ArrayList)4 PolicySet (com.sun.identity.entitlement.xacml3.core.PolicySet)3 Rule (com.sun.identity.entitlement.xacml3.core.Rule)3 Target (com.sun.identity.entitlement.xacml3.core.Target)3 Entitlement (com.sun.identity.entitlement.Entitlement)2 EntitlementCondition (com.sun.identity.entitlement.EntitlementCondition)2 EntitlementSubject (com.sun.identity.entitlement.EntitlementSubject)2 Privilege (com.sun.identity.entitlement.Privilege)2 ReferralPrivilege (com.sun.identity.entitlement.ReferralPrivilege)2 ResourceAttribute (com.sun.identity.entitlement.ResourceAttribute)2 Policy (com.sun.identity.entitlement.xacml3.core.Policy)2 VariableDefinition (com.sun.identity.entitlement.xacml3.core.VariableDefinition)2 Version (com.sun.identity.entitlement.xacml3.core.Version)2