You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2013/10/03 18:46:18 UTC
svn commit: r1528929 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission:
CompiledPermissionImpl.java PermissionStore.java
Author: angela
Date: Thu Oct 3 16:46:18 2013
New Revision: 1528929
URL: http://svn.apache.org/r1528929
Log:
OAK-527: minor improvement (cleanup, indention, formatting)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStore.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java?rev=1528929&r1=1528928&r2=1528929&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java Thu Oct 3 16:46:18 2013
@@ -48,7 +48,6 @@ import static com.google.common.base.Pre
class CompiledPermissionImpl implements CompiledPermissions, PermissionConstants {
private final Set<Principal> principals;
- private final RestrictionProvider restrictionProvider;
private final Map<String, Tree> userTrees;
private final Map<String, Tree> groupTrees;
@@ -67,13 +66,12 @@ class CompiledPermissionImpl implements
@Nonnull Set<String> readPaths) {
checkArgument(!principals.isEmpty());
this.principals = principals;
- this.restrictionProvider = restrictionProvider;
this.bitsProvider = bitsProvider;
readPathsCheckList = new String[readPaths.size() * 2];
- int i=0;
- for (String p: readPaths) {
+ int i = 0;
+ for (String p : readPaths) {
readPathsCheckList[i++] = p;
- readPathsCheckList[i++] = p + "/";
+ readPathsCheckList[i++] = p + '/';
}
userTrees = new HashMap<String, Tree>(principals.size());
@@ -97,7 +95,7 @@ class CompiledPermissionImpl implements
//------------------------------------------------< CompiledPermissions >---
@Override
public void refresh(@Nonnull ImmutableTree permissionsTree,
- @Nonnull PrivilegeBitsProvider bitsProvider) {
+ @Nonnull PrivilegeBitsProvider bitsProvider) {
this.bitsProvider = bitsProvider;
// test if a permission has been added for those principals that didn't have one before
for (Principal principal : principals) {
@@ -183,8 +181,8 @@ class CompiledPermissionImpl implements
boolean respectParent = (tree != null || path != null) &&
(Permissions.includes(permissions, Permissions.ADD_NODE) ||
- Permissions.includes(permissions, Permissions.REMOVE_NODE) ||
- Permissions.includes(permissions, Permissions.MODIFY_CHILD_NODE_COLLECTION));
+ Permissions.includes(permissions, Permissions.REMOVE_NODE) ||
+ Permissions.includes(permissions, Permissions.MODIFY_CHILD_NODE_COLLECTION));
long allows = (isReadable) ? Permissions.READ : Permissions.NO_PERMISSION;
long denies = Permissions.NO_PERMISSION;
@@ -278,7 +276,7 @@ class CompiledPermissionImpl implements
if (readPathsCheckList.length > 0) {
String targetPath = (tree != null) ? tree.getPath() : treePath;
if (targetPath != null) {
- for (int i=0; i<readPathsCheckList.length; i++) {
+ for (int i = 0; i < readPathsCheckList.length; i++) {
if (targetPath.equals(readPathsCheckList[i++])) {
return true;
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStore.java?rev=1528929&r1=1528928&r2=1528929&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionStore.java Thu Oct 3 16:46:18 2013
@@ -17,17 +17,17 @@
package org.apache.jackrabbit.oak.security.authorization.permission;
import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.TreeSet;
-
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import com.google.common.base.Predicate;
+import com.google.common.base.Strings;
+import com.google.common.collect.Iterators;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
@@ -38,17 +38,14 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits;
import org.apache.jackrabbit.util.Text;
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
-import com.google.common.collect.Iterators;
-import com.google.common.primitives.Longs;
-
import static com.google.common.base.Preconditions.checkNotNull;
/**
* The Permission store reads the principal based access control permissions. One store is currently used to handle
* 1 set of principal trees (so the compiled permissions use 2 stores, one for the user principals and one for the
* group principals)
+ * <p/>
+ * TODO: implement caching
*/
class PermissionStore implements PermissionConstants {
@@ -56,8 +53,6 @@ class PermissionStore implements Permiss
private final RestrictionProvider restrictionProvider;
- private final Map<String, Collection<PermissionEntry>> cache = new HashMap<String, Collection<PermissionEntry>>();
-
PermissionStore(Map<String, Tree> principalTrees, RestrictionProvider restrictionProvider) {
this.principalTrees = principalTrees;
this.restrictionProvider = restrictionProvider;
@@ -65,32 +60,28 @@ class PermissionStore implements Permiss
@Nonnull
private Collection<PermissionEntry> getEntries(String path) {
- Collection<PermissionEntry> ret = cache.get(path);
- if (ret == null) {
- ret = new TreeSet<PermissionEntry>();
- String name = PermissionUtil.getEntryName(path);
- for (Map.Entry<String, Tree> principalRoot : principalTrees.entrySet()) {
- Tree child = principalRoot.getValue().getChild(name);
- if (child.exists()) {
- if (PermissionUtil.checkACLPath(child, path)) {
- loadPermissionsFromNode(path, ret, child);
- } else {
- // check for child node
- for (Tree node: child.getChildren()) {
- if (PermissionUtil.checkACLPath(node, path)) {
- loadPermissionsFromNode(path, ret, node);
- }
+ Collection<PermissionEntry> ret = new TreeSet<PermissionEntry>();
+ String name = PermissionUtil.getEntryName(path);
+ for (Map.Entry<String, Tree> principalRoot : principalTrees.entrySet()) {
+ Tree child = principalRoot.getValue().getChild(name);
+ if (child.exists()) {
+ if (PermissionUtil.checkACLPath(child, path)) {
+ loadPermissionsFromNode(path, ret, child);
+ } else {
+ // check for child node
+ for (Tree node : child.getChildren()) {
+ if (PermissionUtil.checkACLPath(node, path)) {
+ loadPermissionsFromNode(path, ret, node);
}
}
}
}
- //cache.put(path, ret);
}
return ret;
}
private void loadPermissionsFromNode(String path, Collection<PermissionEntry> ret, Tree node) {
- for (Tree ace: node.getChildren()) {
+ for (Tree ace : node.getChildren()) {
if (ace.getName().charAt(0) != 'c') {
ret.add(new PermissionEntry(path, ace, restrictionProvider));
}
@@ -105,7 +96,7 @@ class PermissionStore implements Permiss
}
public void flush() {
- cache.clear();
+ // TODO clear cache
}
private class EntryIterator implements Iterator<PermissionEntry> {
@@ -156,7 +147,7 @@ class PermissionStore implements Permiss
@CheckForNull
private void seekNext() {
- for (next = null; next == null;) {
+ for (next = null; next == null; ) {
if (nextEntries.hasNext()) {
PermissionEntry pe = nextEntries.next();
if (predicate.apply(pe)) {
@@ -212,7 +203,6 @@ class PermissionStore implements Permiss
}
}
-
public static final class PermissionEntry implements Comparable<PermissionEntry> {
/**
@@ -273,19 +263,19 @@ class PermissionStore implements Permiss
public int compareTo(PermissionEntry o) {
final int anotherVal = o.index;
// reverse order
- return (index<anotherVal ? 1 : (index==anotherVal ? 0 : -1));
+ return (index < anotherVal ? 1 : (index == anotherVal ? 0 : -1));
}
@Override
public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
PermissionEntry that = (PermissionEntry) o;
-
- if (index != that.index) return false;
-
- return true;
+ return index == that.index;
}
@Override
@@ -293,13 +283,4 @@ class PermissionStore implements Permiss
return index;
}
}
-
- private static final class EntryComparator implements Comparator<PermissionEntry> {
- @Override
- public int compare(@Nonnull PermissionEntry entry,
- @Nonnull PermissionEntry otherEntry) {
- return Longs.compare(otherEntry.index, entry.index);
- }
- }
-
}