Examples of PolicySetType


Examples of org.opensaml.xacml.policy.PolicySetType

            throw new XACMLPolicyManagementServiceException("Forbidden operation for a remote PAP");
        }

        PapContainer papContainer = new PapContainer(pap);

        PolicySetType targetPolicySet = getTargetPolicySet(papContainer);

        if (targetPolicySet == null) {
            targetPolicySet = (new PolicySetWizard(resourceAttributeWizard)).getXACML();
        } else {
            updateOperationForPolicySet = true;
        }

        String policyId = null;

        PolicyWizard targetPolicyWizard;
        PolicyType candidatePolicy = getTargetPolicy(papContainer, targetPolicySet);

        if (candidatePolicy == null) {
            targetPolicyWizard = new PolicyWizard(actionAttributeWizard);
            targetPolicyWizard.setPrivate(!isPublic);
            policyId = targetPolicyWizard.getPolicyId();
            PolicySetHelper.addPolicyReference(targetPolicySet, 0, policyId);
        } else {
            targetPolicyWizard = new PolicyWizard(candidatePolicy);

            if (targetPolicyWizard.denyRuleForAttributeExists(banAttributeWizard)) {
                // ban policy already exists
                return null;
            }
            policyId = candidatePolicy.getPolicyId();
            updateOperationForPolicy = true;
            policySetNeedToBeSaved = false;
        }

        targetPolicyWizard.addRule(0, banAttributeWizard, EffectType.Deny);

        // Store the ban policy and the policy set in which it is contained
        // (only if needed)
        if (policySetNeedToBeSaved) {
            if (updateOperationForPolicySet) {
                String oldVersion = targetPolicySet.getVersion();
                PolicySetWizard.increaseVersion(targetPolicySet);
                papContainer.updatePolicySet(oldVersion, targetPolicySet);
            } else {
                papContainer.addPolicySet(0, targetPolicySet);
            }
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

    }

    private PolicySetType getTargetPolicySet(PapContainer papContainer) {

        // get the target policy set, it must be the very first policy set (if it exists)
        PolicySetType targetPolicySet = null;
        TargetWizard policySetTargetWizard = new TargetWizard(resourceAttributeWizard);

        PolicySetType papRootPolicySet = papContainer.getRootPolicySet();

        List<String> policySetIdList = PolicySetHelper.getPolicySetIdReferencesValues(papRootPolicySet);

        TypeStringUtils.releaseUnneededMemory(papRootPolicySet);

        if (policySetIdList.size() == 0) {
            return null;
        }

        PolicySetType candidatePolicySet = papContainer.getPolicySet(policySetIdList.get(0));

        if (policySetTargetWizard.isEquivalent(candidatePolicySet.getTarget())) {
            targetPolicySet = candidatePolicySet;
        }

        return targetPolicySet;
    }
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

    private void movePolicySet(PapContainer papContainer) {

        // now we have only two levels so... all the policy sets (resource <id>) are referenced by
        // the PAP
        // root policy set
        PolicySetType rootPAPPolicySet = papContainer.getRootPolicySet();

        if (!(PolicySetHelper.hasPolicySetReferenceId(rootPAPPolicySet, pivotId))) {
            throw new RepositoryException("Id not found or not a resource-id: " + pivotId);
        }

        if (!(PolicySetHelper.deletePolicySetReference(rootPAPPolicySet, id))) {
            throw new RepositoryException(String.format("Id \"%s\" not found into resource \"%s\"",
                                                        id,
                                                        rootPAPPolicySet.getPolicySetId()));
        }

        int pivotIndex = PolicySetHelper.getPolicySetIdReferenceIndex(rootPAPPolicySet, pivotId);

        if (moveAfter) {
            pivotIndex++;
        }
        log.debug("New position for PolicySet is: " + pivotIndex);

        PolicySetHelper.addPolicySetReference(rootPAPPolicySet, pivotIndex, id);

        String version = rootPAPPolicySet.getVersion();

        PolicySetWizard.increaseVersion(rootPAPPolicySet);

        papContainer.updatePolicySet(version, rootPAPPolicySet);
    }
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

        papContainer.updatePolicySet(version, rootPAPPolicySet);
    }

    private void movePolicy(PapContainer papContainer) {
        PolicySetType targetPolicySet = null;

        // get the target policy set
        for (PolicySetType policySet : papContainer.getAllPolicySets()) {

            PolicySetType tempPolicySet = policySet;

            if (PolicySetHelper.hasPolicyReferenceId(tempPolicySet, pivotId)) {
                targetPolicySet = tempPolicySet;
                break;
            }
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

        List<PolicySetType> targetPolicySetList = new LinkedList<PolicySetType>();

        TargetWizard policySetTargetWizard = new TargetWizard(resourceAttributeWizard);

        PolicySetType rootPAPPolicySet = papContainer.getRootPolicySet();

        List<String> policySetIdList = PolicySetHelper.getPolicySetIdReferencesValues(rootPAPPolicySet);

        TypeStringUtils.releaseUnneededMemory(rootPAPPolicySet);

        for (String policySetId : policySetIdList) {

            PolicySetType policySet = papContainer.getPolicySet(policySetId);

            if (policySetTargetWizard.isEquivalent(policySet.getTarget())) {
                targetPolicySetList.add(policySet);
            }

            TypeStringUtils.releaseUnneededMemory(policySet);
        }
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

   
    protected PolicySetType findResourcePolicySet(PapContainer pc){
     
      List<PolicySetType> policySetList = pc.getAllPolicySets();

        PolicySetType targetPolicySet = null;
       
        // Skipping the first policy set as it is the root policy set.
        for (int i = 1; i < policySetList.size(); i++) {
            PolicySetType policySet = policySetList.get(i);
            if (resourceValue.equals(PolicySetWizard.getResourceValue(policySet))) {
                if (targetPolicySet != null) {
                    throw new HighLevelPolicyManagementServiceException("More than one resource policy sets match the given resource id!");
                }
                targetPolicySet = policySet;
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

              actionPolicy.setObligations(obligations);
            }
           
          }else{
           
            PolicySetType resourcePolicySet = findResourcePolicySet(papContainer);
            if (!PolicySetHelper.hasObligationWithId(resourcePolicySet, obligationValue)){
              ObligationWizard owiz = new ObligationWizard(obligationValue);
              ObligationsType obligations = ObligationsHelper.build();
              obligations.getObligations().add(owiz.getXACML());
              resourcePolicySet.setObligations(obligations);
            }
           
          }
        }
       
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

     */
    private String getActionId(PapContainer papContainer, String actionValue, String resourceValue,
            boolean bottom) {

       
        PolicySetType targetPolicySet = findResourcePolicySet(papContainer);
       
        if (targetPolicySet == null) {
            String resourceId = createResource(papContainer, resourceValue, bottom);
            return createAction(papContainer, resourceId, actionValue, bottom);
        }
       
               
        List<String> policyIdList = PolicySetHelper.getPolicyIdReferencesValues(targetPolicySet);
       
        PolicyType targetPolicy = null;
       
        for (String policyId : policyIdList) {
            PolicyType policy = papContainer.getPolicy(policyId);
           
            if (actionValue.equals(PolicyWizard.getActionValue(policy))) {
                if (targetPolicy != null) {
                    throw new HighLevelPolicyManagementServiceException("More than one action with the same value");
                }
                targetPolicy = policy;
            }
        }
       
        String actionId;
       
        if (targetPolicy == null) {
            actionId = createAction(papContainer, targetPolicySet.getPolicySetId(), actionValue, bottom);
        } else {
            actionId = targetPolicy.getPolicyId();
        }
       
        return actionId;
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

      PolicySetWizard psWizard = new PolicySetWizard(new AttributeWizard("resource", resourceValue));
     
      if (obligationValue!= null && obligationScope.equals(ObligationScopeType.resource))
        psWizard.addObligation(new ObligationWizard(obligationValue))
     
        PolicySetType resource = psWizard.getXACML();

        String resourceId = resource.getPolicySetId();

        papContainer.storePolicySet(resource);

        PolicySetType rootPolicySet = papContainer.getRootPolicySet();

        int index = 0;

        if (bottom) {
            index = -1;
        }

        PolicySetHelper.addPolicySetReference(rootPolicySet, index, resourceId);

        String version = rootPolicySet.getVersion();
        PolicySetWizard.increaseVersion(rootPolicySet);

        papContainer.updatePolicySet(version, rootPolicySet);

        return resourceId;
View Full Code Here

Examples of org.opensaml.xacml.policy.PolicySetType

        boolean result = true;

        for (PapContainer papContainer : PapContainer.getContainers(PapManager.getInstance().getLocalPaps())) {

            PolicySetType rootPS;

            try {
                rootPS = papContainer.getRootPolicySet();
            } catch (RepositoryException e) {
                String rootAlias = papContainer.getPap().getAlias();
                String action = String.format("remove all policies and and policy sets for root policy set %s",
                                              rootAlias);
                log.error(String.format("The root policy set %s (id=%s) is corrupted. Suggested action: %s",
                                        rootAlias,
                                        action));

                if (repair) {
                    log.info("Automatic repair is set. Action: " + action);
                    papContainer.deleteAllPolicies();
                    papContainer.deleteAllPolicySets();
                    papContainer.createRootPolicySet();
                    log.info("Automatic repair successfully completed (deleted root policy set " + rootAlias
                            + ")");
                } else {
                    result = false;
                }
                continue;
            }

            // check referenced policy sets (the root policy set doesn't have references to
            // policies)
            for (String policySetId : PolicySetHelper.getPolicySetIdReferencesValues(rootPS)) {
                PolicySetType policySet;

                try {
                    policySet = papContainer.getPolicySet(policySetId);
                } catch (RepositoryException e) {
                    String action = String.format("remove policy set %s", policySetId);
                    log.error(String.format("The policy set \"%s\" is corrupted. Suggested action: %s",
                                            policySetId,
                                            action));

                    if (repair) {
                        log.info("Automatic repair is set. Action: " + action);
                        PolicySetHelper.deletePolicySetReference(rootPS, policySetId);
                        String version = rootPS.getVersion();
                        PolicySetWizard.increaseVersion(rootPS);
                        papContainer.updatePolicySet(version, rootPS);
                        papContainer.deletePolicySet(policySetId);
                        log.info("Automatic repair successfully completed (deleted policy set " + policySetId
                                + ")");
                    } else {
                        result = false;
                    }
                    continue;
                }

                // check referenced policies (non-root policy sets don't have references to policy
                // sets)
                for (String policyId : PolicySetHelper.getPolicyIdReferencesValues(policySet)) {

                    try {
                        papContainer.getPolicy(policyId);
                    } catch (RepositoryException e) {
                        String action = String.format("remove policy %s", policyId);
                        log.error(String.format("The policy \"%s\" is corrupted. Suggested action: %s",
                                                policyId,
                                                action));

                        if (repair) {
                            log.info("Automatic repair is set. Action: " + action);
                            PolicySetHelper.deletePolicyReference(policySet, policyId);
                            String version = policySet.getVersion();
                            PolicySetWizard.increaseVersion(policySet);
                            papContainer.updatePolicySet(version, policySet);
                            papContainer.deletePolicy(policyId);
                            log.info("Automatic repair successfully completed (deleted policy " + policyId
                                    + ")");
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.