You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/08/25 20:28:04 UTC

svn commit: r1517360 - in /jena/Experimental/jena-security: ./ src/main/java/org/apache/jena/security/query/ src/test/java/org/apache/jena/security/ src/test/java/org/apache/jena/security/query/ src/test/java/org/apache/jena/security/query/rewriter/

Author: claude
Date: Sun Aug 25 18:28:04 2013
New Revision: 1517360

URL: http://svn.apache.org/r1517360
Log:
Removed System.out prints.
Fixed OpRewriterTest
changed apache-jena dependency to apache-jena-libs

Modified:
    jena/Experimental/jena-security/   (props changed)
    jena/Experimental/jena-security/pom.xml
    jena/Experimental/jena-security/src/main/java/org/apache/jena/security/query/SecuredQueryEngine.java
    jena/Experimental/jena-security/src/test/java/org/apache/jena/security/SecuredAssemblerTest.java
    jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/QueryEngineTest.java
    jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java

Propchange: jena/Experimental/jena-security/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Aug 25 18:28:04 2013
@@ -0,0 +1,5 @@
+.classpath
+
+.project
+
+.settings

Modified: jena/Experimental/jena-security/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/pom.xml?rev=1517360&r1=1517359&r2=1517360&view=diff
==============================================================================
--- jena/Experimental/jena-security/pom.xml (original)
+++ jena/Experimental/jena-security/pom.xml Sun Aug 25 18:28:04 2013
@@ -117,7 +117,7 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.jena</groupId>
-			<artifactId>apache-jena</artifactId>
+			<artifactId>apache-jena-libs</artifactId>
 			<version>2.10.2-SNAPSHOT</version>
 			<type>pom</type>
 		</dependency>

Modified: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/query/SecuredQueryEngine.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/query/SecuredQueryEngine.java?rev=1517360&r1=1517359&r2=1517360&view=diff
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/query/SecuredQueryEngine.java (original)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/query/SecuredQueryEngine.java Sun Aug 25 18:28:04 2013
@@ -75,7 +75,6 @@ public class SecuredQueryEngine extends 
 		SecuredQueryEngine.LOG.debug("After: {}", result);
 		result = super.modifyOp(result);
 		SecuredQueryEngine.LOG.debug("After Optimize: {}", result);
-		System.out.println(result);
 		return result;
 	}
 

Modified: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/SecuredAssemblerTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/SecuredAssemblerTest.java?rev=1517360&r1=1517359&r2=1517360&view=diff
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/SecuredAssemblerTest.java (original)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/SecuredAssemblerTest.java Sun Aug 25 18:28:04 2013
@@ -45,7 +45,7 @@ public class SecuredAssemblerTest
 		model = ModelFactory.createDefaultModel();
 		URL url = SecuredAssemblerTest.class.getClassLoader().getResource( SecuredAssemblerTest.class.getName().replace(".", "/")+".ttl");
 		model.read( url.toURI().toString(), "TURTLE" );
-		model.write( System.out, "TURTLE" );
+		//model.write( System.out, "TURTLE" );
 	}
 	
 	@Test

Modified: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/QueryEngineTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/QueryEngineTest.java?rev=1517360&r1=1517359&r2=1517360&view=diff
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/QueryEngineTest.java (original)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/QueryEngineTest.java Sun Aug 25 18:28:04 2013
@@ -137,7 +137,6 @@ public class QueryEngineTest
 				{
 					count++;
 					final QuerySolution soln = results.nextSolution();
-					System.out.println(soln);
 				}
 				Assert.assertEquals(8, count);
 			}

Modified: jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java?rev=1517360&r1=1517359&r2=1517360&view=diff
==============================================================================
--- jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java (original)
+++ jena/Experimental/jena-security/src/test/java/org/apache/jena/security/query/rewriter/OpRewriterTest.java Sun Aug 25 18:28:04 2013
@@ -19,43 +19,94 @@ package org.apache.jena.security.query.r
 
 import com.hp.hpl.jena.graph.NodeFactory;
 import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.sparql.algebra.Op;
 import com.hp.hpl.jena.sparql.algebra.op.OpBGP;
+import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
 import com.hp.hpl.jena.sparql.core.BasicPattern;
+import com.hp.hpl.jena.sparql.expr.ExprList;
 import com.hp.hpl.jena.vocabulary.RDF;
 
 import java.util.Arrays;
 
+import org.apache.jena.security.AccessDeniedException;
 import org.apache.jena.security.MockSecurityEvaluator;
 import org.apache.jena.security.SecurityEvaluator;
 import org.apache.jena.security.query.rewriter.OpRewriter;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
 public class OpRewriterTest
 {
 	private OpRewriter rewriter;
-	private SecurityEvaluator securityEvaluator = new MockSecurityEvaluator( true, true, true, true, true, true );
+	private Triple[] triples;
 	
 	public OpRewriterTest()
 	{
 	}
 	
 	@Before
-	public void setUp()
+	public void setup()
 	{
-		rewriter = new OpRewriter( securityEvaluator, "http://example.com/dummy");
+		triples = new Triple[] {
+				new Triple( NodeFactory.createVariable("foo"), RDF.type.asNode(), NodeFactory.createURI( "http://example.com/class")),
+				new Triple( NodeFactory.createVariable("foo"), NodeFactory.createAnon(), NodeFactory.createVariable("bar")),
+				new Triple( NodeFactory.createVariable("bar"), NodeFactory.createAnon(), NodeFactory.createVariable("baz")),
+		};
 	}
 	
 	@Test
 	public void testBGP()
 	{
+		SecurityEvaluator securityEvaluator =  new MockSecurityEvaluator( true, true, true, true, true, true );
+		rewriter = new OpRewriter( securityEvaluator, "http://example.com/dummy");
+		
+		rewriter.visit( new OpBGP( BasicPattern.wrap(Arrays.asList(triples))));
+		Op op = rewriter.getResult();
+		Assert.assertTrue( "Should have been an OpFilter", op instanceof OpFilter );
+		OpFilter filter = (OpFilter) op;
+		ExprList eLst = filter.getExprs();
+		Assert.assertEquals( 1, eLst.size());
+		Assert.assertTrue( "Should have been a SecuredFunction", eLst.get(0) instanceof SecuredFunction);
+		op = filter.getSubOp();
+		Assert.assertTrue( "Should have been a OpBGP", op instanceof OpBGP);
+		BasicPattern basicPattern = ((OpBGP)op).getPattern();
+		Assert.assertEquals( 3, basicPattern.size() );
+		
+		Triple t = basicPattern.get(0);
+		Assert.assertEquals(  NodeFactory.createVariable("foo"), t.getSubject());
+		Assert.assertEquals( RDF.type.asNode(), t.getPredicate());
+		Assert.assertEquals( NodeFactory.createURI( "http://example.com/class"), t.getObject());
+		
+		t = basicPattern.get(1);
+		Assert.assertEquals(  NodeFactory.createVariable("foo"), t.getSubject());
+		Assert.assertTrue( "Should have been blank", t.getPredicate().isBlank());
+		Assert.assertEquals( NodeFactory.createVariable("bar"), t.getObject());	
+		
+		t = basicPattern.get(2);
+		Assert.assertEquals( NodeFactory.createVariable("bar"), t.getSubject() );
+		Assert.assertTrue( "Should have been blank", t.getPredicate().isBlank());
+		Assert.assertEquals( NodeFactory.createVariable("baz"), t.getObject());	
+	}
+	
+	@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.createAnon(), NodeFactory.createVariable("bar")),
 				new Triple( NodeFactory.createVariable("bar"), NodeFactory.createAnon(), NodeFactory.createVariable("baz")),
 		};
-		rewriter.visit( new OpBGP( BasicPattern.wrap(Arrays.asList(triples))));
-		System.out.println( rewriter.getResult());
+		try {
+			rewriter.visit( new OpBGP( BasicPattern.wrap(Arrays.asList(triples))));
+			Assert.fail( "Should have thrown AccessDeniedException");
+		}
+		catch (AccessDeniedException e)
+		{
+			// expected
+		}
 	}
 
 }