use of org.apache.jena.permissions.MockSecurityEvaluator in project jena by apache.
the class DataSetTest method testSelectAllType.
@Test
public void testSelectAllType() {
eval = new MockSecurityEvaluator(true, true, true, true, true, true) {
@Override
public boolean evaluate(final Object principal, final Action action, final Node graphIRI, final Triple triple) {
if (triple.getSubject().isURI() && triple.getSubject().getURI().equals("http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
}
@Override
public boolean evaluateAny(Object principal, Set<Action> action, Node graphIRI, Triple triple) {
if (triple.getSubject().isURI() && triple.getSubject().getURI().equals("http://example.com/resource/1")) {
return false;
}
return super.evaluateAny(principal, action, graphIRI, triple);
}
};
setup();
try {
String query = "SELECT ?s ?p ?o WHERE " + " { ?s ?p ?o } ";
try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
final ResultSet results = qexec.execSelect();
int count = 0;
for (; results.hasNext(); ) {
count++;
results.nextSolution();
}
// 2x 3 values + type triple
Assert.assertEquals(8, count);
}
query = "SELECT ?g ?s ?p ?o WHERE " + " { GRAPH ?g {?s ?p ?o } }";
try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
final ResultSet results = qexec.execSelect();
int count = 0;
for (; results.hasNext(); ) {
count++;
results.nextSolution();
}
// 2x 3 values + type triple
// all are in the base graph so no named graphs
Assert.assertEquals(0, count);
}
} finally {
dataset.close();
}
}
use of org.apache.jena.permissions.MockSecurityEvaluator in project jena by apache.
the class QueryEngineTest method testSelectAllType.
@Test
public void testSelectAllType() {
final SecurityEvaluator eval = new MockSecurityEvaluator(true, true, true, true, true, true) {
@Override
public boolean evaluate(Object principal, final Action action, final Node graphIRI, final Triple triple) {
if (triple.getSubject().isURI() && triple.getSubject().getURI().equals("http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
}
};
final SecuredModel model = Factory.getInstance(eval, "http://example.com/securedModel", baseModel);
try {
String query = "SELECT ?s ?p ?o WHERE " + " { ?s ?p ?o } ";
try (QueryExecution qexec = QueryExecutionFactory.create(query, model)) {
final ResultSet results = qexec.execSelect();
int count = 0;
for (; results.hasNext(); ) {
count++;
results.nextSolution();
}
// 2x 3 values + type triple
Assert.assertEquals(8, count);
}
query = "SELECT ?s ?p ?o WHERE " + " { GRAPH ?g {?s ?p ?o } }";
try (QueryExecution qexec = QueryExecutionFactory.create(query, model)) {
final ResultSet results = qexec.execSelect();
int count = 0;
for (; results.hasNext(); ) {
count++;
results.nextSolution();
}
// 2x 3 values + type triple
// no named graphs so no results.
Assert.assertEquals(0, count);
}
} finally {
model.close();
}
}
use of org.apache.jena.permissions.MockSecurityEvaluator in project jena by apache.
the class OpRewriterTest method testBGPNoReadAccess.
@Test
public void testBGPNoReadAccess() {
SecurityEvaluator securityEvaluator = new MockSecurityEvaluator(true, true, false, true, true, true);
rewriter = new OpRewriter(securityEvaluator, "http://example.com/dummy");
Triple[] triples = { new Triple(NodeFactory.createVariable("foo"), RDF.type.asNode(), NodeFactory.createURI("http://example.com/class")), new Triple(NodeFactory.createVariable("foo"), NodeFactory.createBlankNode(), NodeFactory.createVariable("bar")), new Triple(NodeFactory.createVariable("bar"), NodeFactory.createBlankNode(), NodeFactory.createVariable("baz")) };
try {
rewriter.visit(new OpBGP(BasicPattern.wrap(Arrays.asList(triples))));
Assert.fail("Should have thrown AccessDeniedException");
} catch (ReadDeniedException e) {
// expected
}
}
Aggregations