Search in sources :

Example 16 with ContextPolicyManager

use of org.codice.ddf.security.policy.context.ContextPolicyManager in project admin-console-beta by connexta.

the class PolicyManagerServiceProperties method contextPolicyServiceToContextPolicyFields.

public ContextPolicyBin.ListImpl contextPolicyServiceToContextPolicyFields(ServiceReader serviceReader) {
    ContextPolicyManager policyManager = serviceReader.getServiceReference(ContextPolicyManager.class);
    List<ContextPolicyBin> policies = new ArrayList<>();
    Collection<ContextPolicy> allPolicies = policyManager.getAllContextPolicies();
    for (ContextPolicy policy : allPolicies) {
        Map<String, String> policyRequiredAttributes = policy.getAllowedAttributes().stream().collect(Collectors.toMap(ContextAttributeMapping::getAttributeName, ContextAttributeMapping::getAttributeValue));
        policies.add(new ContextPolicyBin(serviceReader).addClaimsMap(policyRequiredAttributes).authTypes(policy.getAuthenticationMethods()).addContextPath(policy.getContextPath()));
    }
    // Check if bin containing an identical context policy exists already, if so add the context
    // path to it
    // Do this after pulling the configuration so that values are matched to their appropriate enums
    List<ContextPolicyBin> collapsedBins = new ArrayList<>();
    for (ContextPolicyBin bin : policies) {
        boolean foundBin = false;
        for (ContextPolicyBin collapsedBin : collapsedBins) {
            if (ListUtils.isEqualList(bin.authTypes(), collapsedBin.authTypes()) && bin.claimsMapping().equals(collapsedBin.claimsMapping())) {
                for (ContextPath contextPath : bin.contextFields().getList()) {
                    collapsedBin.addContextPath(contextPath);
                }
                foundBin = true;
                break;
            }
        }
        if (!foundBin) {
            collapsedBins.add(bin);
        }
    }
    return new ContextPolicyBin.ListImpl(serviceReader).addAll(collapsedBins);
}
Also used : ContextPath(org.codice.ddf.admin.common.fields.common.ContextPath) ArrayList(java.util.ArrayList) ContextPolicyBin(org.codice.ddf.admin.security.common.fields.wcpm.ContextPolicyBin) ContextPolicy(org.codice.ddf.security.policy.context.ContextPolicy) ContextPolicyManager(org.codice.ddf.security.policy.context.ContextPolicyManager)

Aggregations

ContextPolicyManager (org.codice.ddf.security.policy.context.ContextPolicyManager)16 ContextPolicy (org.codice.ddf.security.policy.context.ContextPolicy)13 Test (org.junit.Test)13 HttpServletRequest (javax.servlet.http.HttpServletRequest)11 HttpServletResponse (javax.servlet.http.HttpServletResponse)11 SecurityFilterChain (org.codice.ddf.platform.filter.SecurityFilterChain)11 SecurityLogger (ddf.security.audit.SecurityLogger)6 AuthenticationException (org.codice.ddf.platform.filter.AuthenticationException)6 AuthenticationHandler (org.codice.ddf.security.handler.api.AuthenticationHandler)6 HandlerResult (org.codice.ddf.security.handler.api.HandlerResult)6 Collection (java.util.Collection)5 Map (java.util.Map)5 ServletRequest (javax.servlet.ServletRequest)5 ServletResponse (javax.servlet.ServletResponse)5 SecurityConstants (ddf.security.SecurityConstants)4 Subject (ddf.security.Subject)4 CollectionPermission (ddf.security.permission.CollectionPermission)4 CollectionPermissionImpl (ddf.security.permission.impl.CollectionPermissionImpl)4 KeyValuePermissionImpl (ddf.security.permission.impl.KeyValuePermissionImpl)4 IOException (java.io.IOException)4