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"));
}
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"));
}
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;
}
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;
}
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;
}
Aggregations