use of org.apache.jena.rdf.model.RDFNode in project jena by apache.
the class SecuredRDFListTest method testSetHead.
@Test
public void testSetHead() {
try {
RDFNode result = getSecuredRDFList().setHead(newResource1);
if (!shouldRead() || !securityEvaluator.evaluate(Action.Update)) {
fail("Should have thrown AccessDeniedException");
}
assertEquals(resource1, result);
List<RDFNode> lst = ((RDFList) getBaseRDFNode()).asJavaList();
Iterator<RDFNode> iter = lst.iterator();
assertEquals(newResource1, iter.next());
assertEquals(resource2, iter.next());
assertEquals(resource3, iter.next());
assertEquals(resource4, iter.next());
assertFalse(iter.hasNext());
} catch (final AccessDeniedException e) {
if (shouldRead() && securityEvaluator.evaluate(Action.Update) && securityEvaluator.evaluate(Action.Delete)) {
fail("Should not have thrown AccessDeniedException");
}
} catch (final EmptyListException e) {
if (securityEvaluator.evaluate(Action.Read)) {
fail("Should not have thrown EmptyListException");
}
}
}
use of org.apache.jena.rdf.model.RDFNode in project jena by apache.
the class SecuredRDFListTest method testGet.
@Test
public void testGet() {
try {
RDFNode actual = getSecuredRDFList().get(0);
if (!securityEvaluator.evaluate(Action.Read)) {
if (securityEvaluator.isHardReadError()) {
fail("Should have thrown ReadDeniedException");
} else {
fail("Should have thrown ListIndexException");
}
}
assertEquals(resource1, actual);
assertEquals(securedModel, actual.getModel());
} catch (final ReadDeniedException e) {
if (shouldRead()) {
fail(String.format("Should not have thrown ReadDeniedException: %s - %s", e, e.getTriple()));
}
} catch (final ListIndexException e) {
boolean expected = !securityEvaluator.isHardReadError();
if (!expected) {
fail("Should not have thrown ListIndexException");
}
}
}
use of org.apache.jena.rdf.model.RDFNode in project jena by apache.
the class SecuredResourceTest method testAddProperty.
@Test
public void testAddProperty() {
final Set<Action> perms = SecurityEvaluator.Util.asSet(new Action[] { Action.Update, Action.Create });
final RDFNode rdfNode = ResourceFactory.createResource("http://example.com/newResource");
try {
getSecuredResource().addLiteral(SecuredRDFNodeTest.p, rdfNode);
if (!securityEvaluator.evaluate(perms)) {
Assert.fail("Should have thrown AccessDeniedException Exception");
}
} catch (final AccessDeniedException e) {
if (securityEvaluator.evaluate(perms)) {
Assert.fail(String.format("Should not have thrown AccessDeniedException Exception: %s - %s", e, e.getTriple()));
}
}
try {
getSecuredResource().addLiteral(SecuredRDFNodeTest.p, "string");
if (!securityEvaluator.evaluate(perms)) {
Assert.fail("Should have thrown AccessDeniedException Exception");
}
} catch (final AccessDeniedException e) {
if (securityEvaluator.evaluate(perms)) {
Assert.fail(String.format("Should not have thrown AccessDeniedException Exception: %s - %s", e, e.getTriple()));
}
}
final Literal l = ResourceFactory.createTypedLiteral(3.14F);
try {
getSecuredResource().addProperty(SecuredRDFNodeTest.p, l.getLexicalForm(), l.getDatatype());
if (!securityEvaluator.evaluate(perms)) {
Assert.fail("Should have thrown AccessDeniedException Exception");
}
} catch (final AccessDeniedException e) {
if (securityEvaluator.evaluate(perms)) {
Assert.fail(String.format("Should not have thrown AccessDeniedException Exception: %s - %s", e, e.getTriple()));
}
}
try {
getSecuredResource().addProperty(SecuredRDFNodeTest.p, "dos", "sp");
if (!securityEvaluator.evaluate(perms)) {
Assert.fail("Should have thrown AccessDeniedException Exception");
}
} catch (final AccessDeniedException e) {
if (securityEvaluator.evaluate(perms)) {
Assert.fail(String.format("Should not have thrown AccessDeniedException Exception: %s - %s", e, e.getTriple()));
}
}
}
use of org.apache.jena.rdf.model.RDFNode in project jena by apache.
the class ShLib method printReport.
public static void printReport(Resource report) {
// report.getModel().write(System.out, FileUtils.langTurtle);
String qs = StrUtils.strjoinNL(PREFIXES, "SELECT * {", // , " [ a sh:ValidationReport ; sh:result ?R ]
" [] sh:result ?R .", " ?R", " sh:focusNode ?focusNode ;", " sh:resultMessage ?message ;", " sh:resultSeverity ?severity ; ", " .", " OPTIONAL { ?R sh:sourceConstraintComponent ?component }", " OPTIONAL { ?R sh:sourceShape ?sourceShape }", " OPTIONAL { ?R sh:resultPath ?path}", "}");
try (QueryExecution qExec = QueryExecutionFactory.create(qs, report.getModel())) {
ResultSet rs = qExec.execSelect();
if (!rs.hasNext()) {
System.out.println("No violations");
} else {
rs.forEachRemaining(row -> {
RDFNode focusNode = row.get("focusNode");
String msg = row.getLiteral("message").getLexicalForm();
RDFNode pathNode = row.get("path");
if (pathNode != null)
System.out.printf("Node=%s Path=%s\n", displayStr(focusNode), pathNode);
else
System.out.printf("Node=%s\n", displayStr(focusNode));
System.out.printf(" %s\n", msg);
Path path = null;
if (pathNode != null)
path = ShaclPaths.parsePath(report.getModel().getGraph(), pathNode.asNode());
// Better (?) to build a report entry.
// ReportEntry e = ReportEntry.create()
// .focusNode(focusNode.asNode())
// .resultPath(path)
// .message(msg)
// .severity(Severity.Violation)
// .source(shape.getShapeNode())
// .sourceConstraint(constraint)
// //.detail(null)
// .value(focusNode)
// .triple(triple)
// ;
});
}
}
}
use of org.apache.jena.rdf.model.RDFNode in project jena by apache.
the class SparqlValidation method parameterMapToPreBinding.
private static QuerySolutionMap parameterMapToPreBinding(Map<Parameter, Node> parameterMap, Node thisNode, Path path, Model model) {
QuerySolutionMap qsm = new QuerySolutionMap();
if (parameterMap != null) {
parameterMap.forEach((p, n) -> qsm.add(p.getSparqlName(), ModelUtils.convertGraphNodeToRDFNode(n, model)));
}
qsm.add("this", ModelUtils.convertGraphNodeToRDFNode(thisNode, model));
if (path != null) {
Node pn = ShaclPaths.pathNode(path);
// done by textually substitution of the SPARQL query string.
if (pn != null) {
RDFNode z = ModelUtils.convertGraphNodeToRDFNode(pn, model);
qsm.add("PATH", z);
}
}
return qsm;
}
Aggregations