Search in sources :

Example 51 with PolicyResponse

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

the class RegistryPolicyPluginTest method testReadRegistryOperations.

@Test
public void testReadRegistryOperations() throws Exception {
    RegistryPolicyPlugin rpp = createRegistryPlugin();
    rpp.setRegistryBypassPolicyStrings(Collections.singletonList("role=system-admin"));
    rpp.setReadAccessPolicyStrings(Collections.singletonList("role=guest"));
    Metacard mcard = new MetacardImpl();
    mcard.setAttribute(new AttributeImpl(Metacard.TAGS, RegistryConstants.REGISTRY_TAG));
    mcard.setAttribute(new AttributeImpl(RegistryObjectMetacardType.REGISTRY_ID, "validId"));
    mcard.setAttribute(new AttributeImpl(Metacard.ID, "1234567890abcdefg987654321"));
    PolicyResponse response = rpp.processPostQuery(new ResultImpl(mcard), null);
    assertThat(response.itemPolicy(), equalTo(rpp.getReadAccessPolicy()));
}
Also used : Metacard(ddf.catalog.data.Metacard) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) ResultImpl(ddf.catalog.data.impl.ResultImpl) PolicyResponse(ddf.catalog.plugin.PolicyResponse) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 52 with PolicyResponse

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

the class RegistryPolicyPluginTest method testRemoteCudOperations.

@Test
public void testRemoteCudOperations() throws Exception {
    RegistryPolicyPlugin rpp = createRegistryPlugin();
    rpp.setRegistryBypassPolicyStrings(Collections.singletonList("role=system-admin"));
    rpp.setCreateAccessPolicyStrings(Collections.singletonList("role=guest"));
    Metacard mcard = new MetacardImpl();
    mcard.setAttribute(new AttributeImpl(Metacard.TAGS, RegistryConstants.REGISTRY_TAG));
    mcard.setAttribute(new AttributeImpl(RegistryObjectMetacardType.REGISTRY_ID, "validId"));
    mcard.setAttribute(new AttributeImpl(Metacard.ID, "1234567890abcdefg987654321"));
    HashMap<String, Serializable> props = new HashMap<>();
    props.put("local-destination", false);
    PolicyResponse response = rpp.processPreCreate(mcard, props);
    assertThat(response.operationPolicy().size(), is(0));
    response = rpp.processPreUpdate(mcard, props);
    assertThat(response.operationPolicy().size(), is(0));
    response = rpp.processPreDelete(Collections.singletonList(mcard), props);
    assertThat(response.operationPolicy().size(), is(0));
}
Also used : Metacard(ddf.catalog.data.Metacard) Serializable(java.io.Serializable) HashMap(java.util.HashMap) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) PolicyResponse(ddf.catalog.plugin.PolicyResponse) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 53 with PolicyResponse

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

the class RegistryPolicyPluginTest method testDisabledRegistry.

@Test
public void testDisabledRegistry() throws Exception {
    RegistryPolicyPlugin rpp = createRegistryPlugin();
    rpp.setRegistryBypassPolicyStrings(Collections.singletonList("role=system-admin"));
    rpp.setRegistryDisabled(true);
    Metacard mcard = new MetacardImpl();
    mcard.setAttribute(new AttributeImpl(Metacard.TAGS, RegistryConstants.REGISTRY_TAG));
    mcard.setAttribute(new AttributeImpl(RegistryObjectMetacardType.REGISTRY_ID, "validId"));
    mcard.setAttribute(new AttributeImpl(Metacard.ID, "1234567890abcdefg987654321"));
    PolicyResponse response = rpp.processPreCreate(mcard, null);
    assertThat(response.operationPolicy(), equalTo(rpp.getBypassAccessPolicy()));
    response = rpp.processPreUpdate(mcard, null);
    assertThat(response.operationPolicy(), equalTo(rpp.getBypassAccessPolicy()));
    response = rpp.processPreDelete(Collections.singletonList(mcard), null);
    assertThat(response.operationPolicy(), equalTo(rpp.getBypassAccessPolicy()));
}
Also used : Metacard(ddf.catalog.data.Metacard) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) PolicyResponse(ddf.catalog.plugin.PolicyResponse) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 54 with PolicyResponse

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

the class RegistryPolicyPluginTest method testWhiteListPostQuery.

@Test
public void testWhiteListPostQuery() throws Exception {
    Metacard mcard = new MetacardImpl();
    mcard.setAttribute(new AttributeImpl(Metacard.TAGS, RegistryConstants.REGISTRY_TAG));
    mcard.setAttribute(new AttributeImpl(RegistryObjectMetacardType.REGISTRY_ID, "validId"));
    mcard.setAttribute(new AttributeImpl(Metacard.ID, "1234567890abcdefg987654321"));
    RegistryPolicyPlugin rpp = createRegistryPlugin();
    rpp.setWhiteList(true);
    rpp.setRegistryBypassPolicyStrings(Collections.singletonList("role=system-admin"));
    PolicyResponse response = rpp.processPostQuery(new ResultImpl(mcard), null);
    assertThat(response.operationPolicy().size(), is(0));
    assertThat(response.itemPolicy(), equalTo(rpp.getBypassAccessPolicy()));
    rpp.setRegistryEntryIds(Collections.singleton("1234567890abcdefg987654321"));
    response = rpp.processPostQuery(new ResultImpl(mcard), null);
    assertThat(response.itemPolicy().size(), is(0));
}
Also used : Metacard(ddf.catalog.data.Metacard) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) ResultImpl(ddf.catalog.data.impl.ResultImpl) PolicyResponse(ddf.catalog.plugin.PolicyResponse) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

Example 55 with PolicyResponse

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

the class RegistryPolicyPluginTest method testNonRegistryMcardTypes.

@Test
public void testNonRegistryMcardTypes() throws Exception {
    RegistryPolicyPlugin rpp = createRegistryPlugin();
    rpp.setRegistryBypassPolicyStrings(Collections.singletonList("role=system-admin"));
    Metacard mcard = new MetacardImpl();
    mcard.setAttribute(new AttributeImpl(Metacard.TAGS, "some.type"));
    mcard.setAttribute(new AttributeImpl(Metacard.ID, "1234567890abcdefg987654321"));
    PolicyResponse response = rpp.processPostQuery(new ResultImpl(mcard), null);
    assertThat(response.itemPolicy().isEmpty(), is(true));
    response = rpp.processPreCreate(mcard, null);
    assertThat(response.operationPolicy().isEmpty(), is(true));
    response = rpp.processPreUpdate(mcard, null);
    assertThat(response.operationPolicy().isEmpty(), is(true));
    response = rpp.processPreDelete(Collections.singletonList(mcard), null);
    assertThat(response.operationPolicy().isEmpty(), is(true));
    Metacard mcard2 = new MetacardImpl();
    mcard2.setAttribute(new AttributeImpl(Metacard.ID, "abcdefghijklmnop1234567890"));
    response = rpp.processPostQuery(new ResultImpl(mcard2), null);
    assertThat(response.itemPolicy().isEmpty(), is(true));
}
Also used : Metacard(ddf.catalog.data.Metacard) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) ResultImpl(ddf.catalog.data.impl.ResultImpl) PolicyResponse(ddf.catalog.plugin.PolicyResponse) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) Test(org.junit.Test)

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