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));
+                                       }
                                }
                        }
                }


Reply via email to