You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/04/01 18:43:27 UTC

svn commit: r930036 - in /incubator/clerezza/trunk/org.apache.clerezza.parent: org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/ org.apache.clerezza.platform.scrip...

Author: reto
Date: Thu Apr  1 16:43:26 2010
New Revision: 930036

URL: http://svn.apache.org/viewvc?rev=930036&view=rev
Log:
CLEREZZA-183 TcPermission: document actions, introduce constants for actions, avoid string operation in actionsImplies-method

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SimpleConceptProviderManager.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/src/main/java/org/apache/clerezza/platform/scripting/scriptmanager/ScriptManager.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.manager/src/main/java/org/apache/clerezza/platform/typerendering/manager/RenderletManager.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/   (props changed)
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/SecuredTripleCollection.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcPermission.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.metadata/   (props changed)
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/   (props changed)

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SimpleConceptProviderManager.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SimpleConceptProviderManager.java?rev=930036&r1=930035&r2=930036&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SimpleConceptProviderManager.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.concepts/org.apache.clerezza.platform.concepts.core/src/main/java/org/apache/clerezza/platform/concepts/core/SimpleConceptProviderManager.java Thu Apr  1 16:43:26 2010
@@ -299,7 +299,8 @@ public class SimpleConceptProviderManage
 		Set<GlobalMenuItem> items = new HashSet<GlobalMenuItem>();
 		try {
 			AccessController.checkPermission(
-					new TcPermission("http://tpf.localhost/content.graph", "write"));
+					new TcPermission("http://tpf.localhost/content.graph", 
+					TcPermission.READWRITE));
 		} catch (AccessControlException e) {
 			return items;
 		}

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/src/main/java/org/apache/clerezza/platform/scripting/scriptmanager/ScriptManager.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/src/main/java/org/apache/clerezza/platform/scripting/scriptmanager/ScriptManager.java?rev=930036&r1=930035&r2=930036&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/src/main/java/org/apache/clerezza/platform/scripting/scriptmanager/ScriptManager.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.scripting.scriptmanager/src/main/java/org/apache/clerezza/platform/scripting/scriptmanager/ScriptManager.java Thu Apr  1 16:43:26 2010
@@ -821,7 +821,8 @@ public class ScriptManager implements Gl
 		Set<GlobalMenuItem> items = new HashSet<GlobalMenuItem>();
 		try {
 			AccessController.checkPermission(
-					new TcPermission("http://tpf.localhost/content.graph", "write"));
+					new TcPermission("http://tpf.localhost/content.graph",
+					TcPermission.READWRITE));
 			AccessController.checkPermission(new ScriptManagerAppPermission());
 		} catch (AccessControlException e) {
 			return items;

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.manager/src/main/java/org/apache/clerezza/platform/typerendering/manager/RenderletManager.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.manager/src/main/java/org/apache/clerezza/platform/typerendering/manager/RenderletManager.java?rev=930036&r1=930035&r2=930036&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.manager/src/main/java/org/apache/clerezza/platform/typerendering/manager/RenderletManager.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.manager/src/main/java/org/apache/clerezza/platform/typerendering/manager/RenderletManager.java Thu Apr  1 16:43:26 2010
@@ -446,7 +446,7 @@ public class RenderletManager implements
 		Set<GlobalMenuItem> items = new HashSet<GlobalMenuItem>();
 		try {
 			AccessController.checkPermission(
-					new TcPermission("http://tpf.localhost/config.graph", "write"));
+					new TcPermission("http://tpf.localhost/config.graph", TcPermission.READWRITE));
 		} catch (AccessControlException e) {
 			return items;
 		}

Propchange: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Apr  1 16:43:26 2010
@@ -0,0 +1 @@
+.RenderletRendererFactoryImpl.java.swp

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/SecuredTripleCollection.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/SecuredTripleCollection.java?rev=930036&r1=930035&r2=930036&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/SecuredTripleCollection.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/SecuredTripleCollection.java Thu Apr  1 16:43:26 2010
@@ -159,14 +159,16 @@ public class SecuredTripleCollection imp
 	private void checkRead() {
 		SecurityManager security = System.getSecurityManager();
 		if (security != null) {
-			security.checkPermission(new TcPermission(name, "read"));
+			security.checkPermission(new TcPermission(name,
+					TcPermission.READ));
 		}
 	}
 
 	private void checkWrite() {
 		SecurityManager security = System.getSecurityManager();
 		if (security != null) {
-			security.checkPermission(new TcPermission(name, "write"));
+			security.checkPermission(new TcPermission(name, 
+					TcPermission.READWRITE));
 		}
 	}
 

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcPermission.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcPermission.java?rev=930036&r1=930035&r2=930036&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcPermission.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcPermission.java Thu Apr  1 16:43:26 2010
@@ -19,6 +19,10 @@
 package org.apache.clerezza.rdf.core.access.security;
 
 import java.security.Permission;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
 
 /**
  * A permission to access <code>TripleCollection<code>s matching a specified 
@@ -30,13 +34,41 @@ import java.security.Permission;
  * @author reto, tsuy
  */
 public class TcPermission extends Permission {
-	private String tcNamePattern;
-	private String actions;
+	public final static String READWRITE = "readwrite";
+	public final static String READ = "read";
 
+	private String tcNamePattern;
+	/**
+	 * true if readwrite granted false if only read
+	 */
+	private boolean allowReadWrite = false;
+
+	final static Pattern actionPattern = Pattern.compile(",( *)");
+	/**
+	 * Conststructs a TcPermission for a specified name pattern and a list of
+	 * actions.
+	 *
+	 * @param tcNamePattern see class description
+	 * @param actions a comma separated list of the strings "read" and "readwrite",
+	 *        the canonical form is just "read" or "readwrite" as "readwrite"
+	 *        implies "read".
+	 */
 	public TcPermission(String tcNamePattern, String actions)  {
 		super(tcNamePattern);
 		this.tcNamePattern = tcNamePattern;
-		this.actions = actions;
+		//check and set actions
+		final Set actionSet = new HashSet(Arrays.asList(actionPattern.split(actions)));
+		if (actionSet.remove(READWRITE)) {
+			allowReadWrite = true;
+		} else {
+			if (!actionSet.contains(READ)) {
+				throw new IllegalArgumentException("actions must be either \"read\" or \"readwrite\"");
+			}
+		}
+		actionSet.remove(READ);
+		if (actionSet.size() > 0) {
+			throw new IllegalArgumentException("actions must only contain \"read\" and \"readwrite\"");
+		}
 	}
 
 	@Override
@@ -46,7 +78,7 @@ public class TcPermission extends Permis
 			if (!patternImplies(other.tcNamePattern)) {
 				return false;
 			}
-			if (!actionsImplies(other.actions)) {
+			if (!actionsImplies(other.allowReadWrite)) {
 				return false;
 			}
 			return true;
@@ -56,11 +88,11 @@ public class TcPermission extends Permis
 		return false;
 	}
 
-	private boolean actionsImplies(String actionsOther) {
-		if (actionsOther.equals("read")) {
+	private boolean actionsImplies(boolean readwriteOther) {
+		if (!readwriteOther) {
 			return true;
 		} else {
-			return actions.contains("write");
+			return allowReadWrite;
 		}
 		
 	}
@@ -90,9 +122,7 @@ public class TcPermission extends Permis
 				|| !this.tcNamePattern.equals(other.tcNamePattern))) {
 			return false;
 		}
-		if (this.actions != other.actions 
-				&& (this.actions == null
-				|| !this.actions.equals(other.actions))) {
+		if (this.allowReadWrite != other.allowReadWrite) {
 			return false;
 		}
 		return true;
@@ -103,6 +133,9 @@ public class TcPermission extends Permis
 		int hash = 3;
 		hash = 97 * hash + (this.tcNamePattern != null ?
 			this.tcNamePattern.hashCode() : 0);
+		if (allowReadWrite) {
+			hash++;
+		}
 		return hash;
 	}
 
@@ -110,7 +143,7 @@ public class TcPermission extends Permis
 
 	@Override
 	public String getActions() {
-		return this.actions;
+		return allowReadWrite ? READWRITE : READ;
 	}
 
 }

Propchange: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.metadata/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Apr  1 16:43:26 2010
@@ -0,0 +1 @@
+target

Propchange: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Apr  1 16:43:26 2010
@@ -2,3 +2,4 @@ target
 .classpath
 .settings
 .project
+.pom.xml.swp