Search in sources :

Example 31 with PolicyResponse

use of ddf.catalog.plugin.PolicyResponse in project ddf by codice.

the class MetacardAttributeSecurityPolicyPluginTest method testProcessPreCreate.

@Test
public void testProcessPreCreate() throws StopProcessingException {
    PolicyResponse policyResponse = plugin.processPreCreate(metacard, new HashMap<>());
    assertThat(policyResponse.itemPolicy().size(), is(2));
    assertTrue(policyResponse.itemPolicy().get("mapped.security").contains("A"));
    assertTrue(policyResponse.itemPolicy().get("mapped.security").contains("B"));
    assertTrue(policyResponse.itemPolicy().get("mapped.security").contains("C"));
    assertTrue(policyResponse.itemPolicy().get("mapped.countries").contains("USA"));
    assertTrue(policyResponse.itemPolicy().get("mapped.countries").contains("CAN"));
    assertNull(policyResponse.itemPolicy().get("parsed.security"));
    assertNull(policyResponse.itemPolicy().get("parsed.countries"));
    assertNull(policyResponse.itemPolicy().get("parsed.other"));
}
Also used : PolicyResponse(ddf.catalog.plugin.PolicyResponse) Test(org.junit.Test)

Example 32 with PolicyResponse

use of ddf.catalog.plugin.PolicyResponse in project ddf by codice.

the class MetacardAttributeSecurityPolicyPluginTest method testBadAttributeDef.

@Test
public void testBadAttributeDef() throws StopProcessingException {
    plugin.setUnionMetacardAttributes(Arrays.asList("parsed.security", "parsed.countries"));
    PolicyResponse policyResponse = plugin.processPreCreate(metacard, new HashMap<>());
    assertThat(policyResponse.itemPolicy().size(), is(2));
    assertTrue(policyResponse.itemPolicy().get("parsed.security").contains("A"));
    assertTrue(policyResponse.itemPolicy().get("parsed.security").contains("B"));
    assertTrue(policyResponse.itemPolicy().get("parsed.security").contains("C"));
    assertTrue(policyResponse.itemPolicy().get("parsed.countries").contains("USA"));
    assertTrue(policyResponse.itemPolicy().get("parsed.countries").contains("CAN"));
    assertNull(policyResponse.itemPolicy().get("mapped.security"));
    assertNull(policyResponse.itemPolicy().get("mapped.countries"));
}
Also used : PolicyResponse(ddf.catalog.plugin.PolicyResponse) Test(org.junit.Test)

Example 33 with PolicyResponse

use of ddf.catalog.plugin.PolicyResponse in project ddf by codice.

the class QueryOperations method populateQueryResponsePolicyMap.

private QueryResponse populateQueryResponsePolicyMap(QueryResponse queryResponse) throws FederationException {
    HashMap<String, Set<String>> responsePolicyMap = new HashMap<>();
    Map<String, Serializable> unmodifiableProperties = Collections.unmodifiableMap(queryResponse.getProperties());
    for (Result result : queryResponse.getResults()) {
        HashMap<String, Set<String>> itemPolicyMap = new HashMap<>();
        for (PolicyPlugin plugin : frameworkProperties.getPolicyPlugins()) {
            try {
                PolicyResponse policyResponse = plugin.processPostQuery(result, unmodifiableProperties);
                opsSecuritySupport.buildPolicyMap(itemPolicyMap, policyResponse.itemPolicy().entrySet());
                opsSecuritySupport.buildPolicyMap(responsePolicyMap, policyResponse.operationPolicy().entrySet());
            } catch (StopProcessingException e) {
                throw new FederationException("Query could not be executed.", e);
            }
        }
        result.getMetacard().setAttribute(new AttributeImpl(Metacard.SECURITY, itemPolicyMap));
    }
    queryResponse.getProperties().put(PolicyPlugin.OPERATION_SECURITY, responsePolicyMap);
    return queryResponse;
}
Also used : Serializable(java.io.Serializable) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) PolicyPlugin(ddf.catalog.plugin.PolicyPlugin) StopProcessingException(ddf.catalog.plugin.StopProcessingException) FederationException(ddf.catalog.federation.FederationException) PolicyResponse(ddf.catalog.plugin.PolicyResponse) Result(ddf.catalog.data.Result)

Example 34 with PolicyResponse

use of ddf.catalog.plugin.PolicyResponse in project ddf by codice.

the class QueryOperations method populateQueryRequestPolicyMap.

private QueryRequest populateQueryRequestPolicyMap(QueryRequest queryReq) throws FederationException {
    HashMap<String, Set<String>> requestPolicyMap = new HashMap<>();
    Map<String, Serializable> unmodifiableProperties = Collections.unmodifiableMap(queryReq.getProperties());
    for (PolicyPlugin plugin : frameworkProperties.getPolicyPlugins()) {
        try {
            PolicyResponse policyResponse = plugin.processPreQuery(queryReq.getQuery(), unmodifiableProperties);
            opsSecuritySupport.buildPolicyMap(requestPolicyMap, policyResponse.operationPolicy().entrySet());
        } catch (StopProcessingException e) {
            throw new FederationException("Query could not be executed.", e);
        }
    }
    queryReq.getProperties().put(PolicyPlugin.OPERATION_SECURITY, requestPolicyMap);
    return queryReq;
}
Also used : Serializable(java.io.Serializable) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) PolicyPlugin(ddf.catalog.plugin.PolicyPlugin) StopProcessingException(ddf.catalog.plugin.StopProcessingException) FederationException(ddf.catalog.federation.FederationException) PolicyResponse(ddf.catalog.plugin.PolicyResponse)

Example 35 with PolicyResponse

use of ddf.catalog.plugin.PolicyResponse in project ddf by codice.

the class UpdateOperations method populateUpdateRequestPolicyMap.

private UpdateRequest populateUpdateRequestPolicyMap(UpdateRequest updateRequest) throws StopProcessingException {
    Map<String, Metacard> metacardMap = getUpdateMap(updateRequest);
    HashMap<String, Set<String>> requestPolicyMap = new HashMap<>();
    for (Map.Entry<Serializable, Metacard> update : updateRequest.getUpdates()) {
        HashMap<String, Set<String>> itemPolicyMap = new HashMap<>();
        HashMap<String, Set<String>> oldItemPolicyMap = new HashMap<>();
        Metacard oldMetacard = metacardMap.get(update.getKey().toString());
        for (PolicyPlugin plugin : frameworkProperties.getPolicyPlugins()) {
            PolicyResponse updatePolicyResponse = plugin.processPreUpdate(update.getValue(), Collections.unmodifiableMap(updateRequest.getProperties()));
            PolicyResponse oldPolicyResponse = plugin.processPreUpdate(oldMetacard, Collections.unmodifiableMap(updateRequest.getProperties()));
            opsSecuritySupport.buildPolicyMap(itemPolicyMap, updatePolicyResponse.itemPolicy().entrySet());
            opsSecuritySupport.buildPolicyMap(oldItemPolicyMap, oldPolicyResponse.itemPolicy().entrySet());
            opsSecuritySupport.buildPolicyMap(requestPolicyMap, updatePolicyResponse.operationPolicy().entrySet());
        }
        update.getValue().setAttribute(new AttributeImpl(Metacard.SECURITY, itemPolicyMap));
        if (oldMetacard != null) {
            oldMetacard.setAttribute(new AttributeImpl(Metacard.SECURITY, oldItemPolicyMap));
        }
    }
    updateRequest.getProperties().put(PolicyPlugin.OPERATION_SECURITY, requestPolicyMap);
    return updateRequest;
}
Also used : Metacard(ddf.catalog.data.Metacard) Serializable(java.io.Serializable) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) PolicyPlugin(ddf.catalog.plugin.PolicyPlugin) Map(java.util.Map) HashMap(java.util.HashMap) AbstractMap(java.util.AbstractMap) PolicyResponse(ddf.catalog.plugin.PolicyResponse)

Aggregations

PolicyResponse (ddf.catalog.plugin.PolicyResponse)75 Test (org.junit.Test)64 MetacardImpl (ddf.catalog.data.impl.MetacardImpl)20 Metacard (ddf.catalog.data.Metacard)19 AttributeImpl (ddf.catalog.data.impl.AttributeImpl)14 Serializable (java.io.Serializable)14 Set (java.util.Set)14 Result (ddf.catalog.data.Result)13 HashMap (java.util.HashMap)12 PolicyPlugin (ddf.catalog.plugin.PolicyPlugin)10 HashSet (java.util.HashSet)7 ResultImpl (ddf.catalog.data.impl.ResultImpl)6 ResourceResponse (ddf.catalog.operation.ResourceResponse)6 Query (ddf.catalog.operation.Query)5 StopProcessingException (ddf.catalog.plugin.StopProcessingException)4 ImmutableSet (com.google.common.collect.ImmutableSet)3 ResourceRequest (ddf.catalog.operation.ResourceRequest)3 ArrayList (java.util.ArrayList)3 Map (java.util.Map)3 OPERATION_TRANSACTION_KEY (ddf.catalog.Constants.OPERATION_TRANSACTION_KEY)2