Search in sources :

Example 6 with Action

use of org.apache.jena.permissions.SecurityEvaluator.Action in project jena by apache.

the class SecuredRDFListTest method testApply.

@Test
public void testApply() {
    final ApplyFn fn = new ApplyFn() {

        @Override
        public void apply(final RDFNode node) {
        // do nothing
        }
    };
    try {
        getSecuredRDFList().apply(fn);
        if (!securityEvaluator.evaluate(Action.Read)) {
            Assert.fail("Should have thrown ReadDeniedException Exception");
        }
    } catch (final ReadDeniedException e) {
        if (securityEvaluator.evaluate(Action.Read)) {
            Assert.fail(String.format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple()));
        }
    }
    final Set<Action> perms = SecurityEvaluator.Util.asSet(new Action[] { Action.Update, Action.Read });
    try {
        getSecuredRDFList().apply(perms, fn);
        if (!securityEvaluator.evaluate(Action.Read)) {
            Assert.fail("Should have thrown ReadDeniedException Exception");
        }
    } catch (final ReadDeniedException e) {
        if (securityEvaluator.evaluate(Action.Read)) {
            Assert.fail(String.format("Should not have thrown ReadDeniedException Exception: %s - %s", e, e.getTriple()));
        }
    }
}
Also used : Action(org.apache.jena.permissions.SecurityEvaluator.Action) ReadDeniedException(org.apache.jena.shared.ReadDeniedException) ApplyFn(org.apache.jena.rdf.model.RDFList.ApplyFn) Test(org.junit.Test)

Example 7 with Action

use of org.apache.jena.permissions.SecurityEvaluator.Action in project jena by apache.

the class SecuredItemImplTest method canRead.

@Test
public void canRead() {
    // Triple.ANY
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    assertTrue(securedItemImpl.canRead(Triple.ANY));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    Triple t = triple.getValue();
    assertEquals(Node.ANY, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(Node.ANY, t.getObject());
    Node n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    Object p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    Action a = action.getValue();
    assertEquals(Action.Read, a);
    reset(evaluator);
    // FUTURE ANY Variable
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    Triple target = new Triple(SecurityEvaluator.FUTURE, Node.ANY, Var.alloc("var"));
    assertTrue(securedItemImpl.canRead(target));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    t = triple.getValue();
    assertEquals(SecurityEvaluator.FUTURE, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(SecurityEvaluator.VARIABLE, t.getObject());
    n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    a = action.getValue();
    assertEquals(Action.Read, a);
}
Also used : Triple(org.apache.jena.graph.Triple) Action(org.apache.jena.permissions.SecurityEvaluator.Action) Node(org.apache.jena.graph.Node) Test(org.junit.Test)

Example 8 with Action

use of org.apache.jena.permissions.SecurityEvaluator.Action in project jena by apache.

the class SecuredItemImplTest method canDelete.

@Test
public void canDelete() {
    // Triple.ANY
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    assertTrue(securedItemImpl.canDelete(Triple.ANY));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    Triple t = triple.getValue();
    assertEquals(Node.ANY, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(Node.ANY, t.getObject());
    Node n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    Object p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    Action a = action.getValue();
    assertEquals(Action.Delete, a);
    reset(evaluator);
    // FUTURE ANY Variable
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    Triple target = new Triple(SecurityEvaluator.FUTURE, Node.ANY, Var.alloc("var"));
    assertTrue(securedItemImpl.canDelete(target));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    t = triple.getValue();
    assertEquals(SecurityEvaluator.FUTURE, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(SecurityEvaluator.VARIABLE, t.getObject());
    n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    a = action.getValue();
    assertEquals(Action.Delete, a);
}
Also used : Triple(org.apache.jena.graph.Triple) Action(org.apache.jena.permissions.SecurityEvaluator.Action) Node(org.apache.jena.graph.Node) Test(org.junit.Test)

Example 9 with Action

use of org.apache.jena.permissions.SecurityEvaluator.Action in project jena by apache.

the class SecuredItemImplTest method canCreate.

@Test
public void canCreate() {
    // Triple.ANY
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    assertTrue(securedItemImpl.canCreate(Triple.ANY));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    Triple t = triple.getValue();
    assertEquals(Node.ANY, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(Node.ANY, t.getObject());
    Node n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    Object p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    Action a = action.getValue();
    assertEquals(Action.Create, a);
    reset(evaluator);
    // FUTURE ANY Variable
    when(evaluator.getPrincipal()).thenReturn(PRINCIPAL);
    when(evaluator.evaluate(anyObject(), any(SecurityEvaluator.Action.class), any(Node.class), any(Triple.class))).thenReturn(Boolean.TRUE);
    Triple target = new Triple(SecurityEvaluator.FUTURE, Node.ANY, Var.alloc("var"));
    assertTrue(securedItemImpl.canCreate(target));
    verify(evaluator).evaluate(principal.capture(), action.capture(), modelNode.capture(), triple.capture());
    t = triple.getValue();
    assertEquals(SecurityEvaluator.FUTURE, t.getSubject());
    assertEquals(Node.ANY, t.getPredicate());
    assertEquals(SecurityEvaluator.VARIABLE, t.getObject());
    n = modelNode.getValue();
    assertEquals(NodeFactory.createURI("urn:name"), n);
    p = principal.getValue();
    assertEquals(PRINCIPAL, p);
    a = action.getValue();
    assertEquals(Action.Create, a);
}
Also used : Triple(org.apache.jena.graph.Triple) Action(org.apache.jena.permissions.SecurityEvaluator.Action) Node(org.apache.jena.graph.Node) Test(org.junit.Test)

Aggregations

Action (org.apache.jena.permissions.SecurityEvaluator.Action)9 Test (org.junit.Test)8 Triple (org.apache.jena.graph.Triple)4 Node (org.apache.jena.graph.Node)3 AccessDeniedException (org.apache.jena.shared.AccessDeniedException)3 ReadDeniedException (org.apache.jena.shared.ReadDeniedException)2 URL (java.net.URL)1 SecuredPrefixMappingTest (org.apache.jena.permissions.graph.SecuredPrefixMappingTest)1 Literal (org.apache.jena.rdf.model.Literal)1 ApplyFn (org.apache.jena.rdf.model.RDFList.ApplyFn)1 ReduceFn (org.apache.jena.rdf.model.RDFList.ReduceFn)1 RDFNode (org.apache.jena.rdf.model.RDFNode)1 Statement (org.apache.jena.rdf.model.Statement)1