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