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/08/27 22:41:20 UTC

svn commit: r990258 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcAccessController.java

Author: reto
Date: Fri Aug 27 20:41:20 2010
New Revision: 990258

URL: http://svn.apache.org/viewvc?rev=990258&view=rev
Log:
CLEREZZA-286: changes made to prevent infinite recursion

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcAccessController.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcAccessController.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/TcAccessController.java?rev=990258&r1=990257&r2=990258&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcAccessController.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/security/TcAccessController.java Fri Aug 27 20:41:20 2010
@@ -18,7 +18,9 @@
  */
 package org.apache.clerezza.rdf.core.access.security;
 
+import java.security.AccessControlException;
 import java.security.AccessController;
+import java.security.AllPermission;
 import java.security.Permission;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -90,14 +92,19 @@ public class TcAccessController {
 		}
 		SecurityManager security = System.getSecurityManager();
 		if (security != null) {
-			Collection<Permission> perms = getRequiredReadPermissions(tripleCollectionUri);
-			if (perms.size() > 0) {
-				for (Permission permission : perms) {
-					AccessController.checkPermission(permission);
+			//will AllPermissions the rest is obsolete
+			try {
+				AccessController.checkPermission(new AllPermission());
+			} catch (AccessControlException e) {
+				Collection<Permission> perms = getRequiredReadPermissions(tripleCollectionUri);
+				if (perms.size() > 0) {
+					for (Permission permission : perms) {
+						AccessController.checkPermission(permission);
+					}
+				} else {
+					AccessController.checkPermission(new TcPermission(
+							tripleCollectionUri.getUnicodeString(), TcPermission.READ));
 				}
-			} else {
-				AccessController.checkPermission(new TcPermission(
-						tripleCollectionUri.getUnicodeString(), TcPermission.READ));
 			}
 		}
 	}
@@ -105,18 +112,23 @@ public class TcAccessController {
 	public void checkReadWritePermission(UriRef tripleCollectionUri) {
 		SecurityManager security = System.getSecurityManager();
 		if (security != null) {
-			if (tripleCollectionUri.equals(permissionGraphName)) {
-				AccessController.checkPermission(new TcPermission(
-						tripleCollectionUri.getUnicodeString(), TcPermission.READWRITE));
-			} else {
-				Collection<Permission> perms = getRequiredReadWritePermissions(tripleCollectionUri);
-				if (perms.size() > 0) {
-					for (Permission permission : perms) {
-						AccessController.checkPermission(permission);
-					}
-				} else {
+			//will AllPermissions the rest is obsolete
+			try {
+				AccessController.checkPermission(new AllPermission());
+			} catch (AccessControlException e) {
+				if (tripleCollectionUri.equals(permissionGraphName)) {
 					AccessController.checkPermission(new TcPermission(
 							tripleCollectionUri.getUnicodeString(), TcPermission.READWRITE));
+				} else {
+					Collection<Permission> perms = getRequiredReadWritePermissions(tripleCollectionUri);
+					if (perms.size() > 0) {
+						for (Permission permission : perms) {
+							AccessController.checkPermission(permission);
+						}
+					} else {
+						AccessController.checkPermission(new TcPermission(
+								tripleCollectionUri.getUnicodeString(), TcPermission.READWRITE));
+					}
 				}
 			}
 		}