This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-accessmanager.git
The following commit(s) were added to refs/heads/master by this push:
new 04ff9b2 SLING-7835 PrivilegesInfo#getEffectiveAccessControlEntries
returns incorrect information
04ff9b2 is described below
commit 04ff9b2744fec422a388f0891b7c52c58cdb2527
Author: Eric Norman <[email protected]>
AuthorDate: Sun Aug 19 13:22:39 2018 -0700
SLING-7835 PrivilegesInfo#getEffectiveAccessControlEntries returns
incorrect information
---
.../jackrabbit/accessmanager/PrivilegesInfo.java | 38 ++++++++++++++--------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
index d0e0133..0232e2f 100644
---
a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
+++
b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
@@ -17,10 +17,12 @@
package org.apache.sling.jcr.jackrabbit.accessmanager;
import java.security.Principal;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
@@ -178,13 +180,17 @@ public class PrivilegesInfo {
private AccessControlEntry[] getDeclaredAccessControlEntries(Session
session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager =
AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies =
accessControlManager.getPolicies(absPath);
- for (AccessControlPolicy accessControlPolicy : policies) {
- if (accessControlPolicy instanceof AccessControlList) {
- AccessControlEntry[] accessControlEntries =
((AccessControlList)accessControlPolicy).getAccessControlEntries();
- return accessControlEntries;
- }
- }
- return new AccessControlEntry[0];
+
+ List<AccessControlEntry> allEntries = new
ArrayList<AccessControlEntry>();
+ for (AccessControlPolicy accessControlPolicy : policies) {
+ if (accessControlPolicy instanceof AccessControlList) {
+ AccessControlEntry[] accessControlEntries =
((AccessControlList)accessControlPolicy).getAccessControlEntries();
+ for (AccessControlEntry accessControlEntry :
accessControlEntries) {
+ allEntries.add(accessControlEntry);
+ }
+ }
+ }
+ return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
}
/**
@@ -286,13 +292,17 @@ public class PrivilegesInfo {
private AccessControlEntry[] getEffectiveAccessControlEntries(Session
session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager =
AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies =
accessControlManager.getEffectivePolicies(absPath);
- for (AccessControlPolicy accessControlPolicy : policies) {
- if (accessControlPolicy instanceof AccessControlList) {
- AccessControlEntry[] accessControlEntries =
((AccessControlList)accessControlPolicy).getAccessControlEntries();
- return accessControlEntries;
- }
- }
- return new AccessControlEntry[0];
+
+ List<AccessControlEntry> allEntries = new
ArrayList<AccessControlEntry>();
+ for (AccessControlPolicy accessControlPolicy : policies) {
+ if (accessControlPolicy instanceof AccessControlList) {
+ AccessControlEntry[] accessControlEntries =
((AccessControlList)accessControlPolicy).getAccessControlEntries();
+ for (AccessControlEntry accessControlEntry :
accessControlEntries) {
+ allEntries.add(accessControlEntry);
+ }
+ }
+ }
+ return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
}
/**