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