SLING-10038 resolve code quality warnings and issues reported by sonar (#1)
SLING-10038 resolve code quality warnings and issues reported by sonar
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 1866ae0..4e679f8 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
@@ -40,6 +40,7 @@
import javax.jcr.security.Privilege;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
+import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
import org.apache.sling.jcr.base.util.AccessControlUtil;
/**
@@ -68,8 +69,7 @@
*/
public Privilege [] getSupportedPrivileges(Session session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session);
- Privilege[] supportedPrivileges = accessControlManager.getSupportedPrivileges(absPath);
- return supportedPrivileges;
+ return accessControlManager.getSupportedPrivileges(absPath);
}
/**
@@ -77,10 +77,10 @@
* and/or denied for a specific principal.
*/
public static class AccessRights {
- private Set<Privilege> granted = new HashSet<Privilege>();
- private Set<Privilege> denied = new HashSet<Privilege>();
+ private Set<Privilege> granted = new HashSet<>();
+ private Set<Privilege> denied = new HashSet<>();
- private transient static ResourceBundle resBundle = null;
+ private ResourceBundle resBundle = null;
private ResourceBundle getResourceBundle(Locale locale) {
if (resBundle == null || !resBundle.getLocale().equals(locale)) {
resBundle = ResourceBundle.getBundle(getClass().getPackage().getName() + ".PrivilegesResources", locale);
@@ -110,10 +110,10 @@
//check if the single privilege is jcr:all or jcr:read
Iterator<Privilege> iterator = granted.iterator();
Privilege next = iterator.next();
- if ("jcr:all".equals(next.getName())) {
+ if (PrivilegeConstants.JCR_ALL.equals(next.getName())) {
//full control privilege set
return getResourceBundle(locale).getString("privilegeset.all");
- } else if ("jcr:read".equals(next.getName())) {
+ } else if (PrivilegeConstants.JCR_READ.equals(next.getName())) {
//readonly privilege set
return getResourceBundle(locale).getString("privilegeset.readonly");
}
@@ -122,8 +122,8 @@
Iterator<Privilege> iterator = granted.iterator();
Privilege next = iterator.next();
Privilege next2 = iterator.next();
- if ( ("jcr:read".equals(next.getName()) && "jcr:write".equals(next2.getName())) ||
- ("jcr:read".equals(next2.getName()) && "jcr:write".equals(next.getName())) ) {
+ if ( (PrivilegeConstants.JCR_READ.equals(next.getName()) && PrivilegeConstants.JCR_WRITE.equals(next2.getName())) ||
+ (PrivilegeConstants.JCR_READ.equals(next2.getName()) && PrivilegeConstants.JCR_WRITE.equals(next.getName())) ) {
//read/write privileges
return getResourceBundle(locale).getString("privilegeset.readwrite");
}
@@ -144,8 +144,7 @@
* @throws RepositoryException if any errors reading the information
*/
public Map<Principal, AccessRights> getDeclaredAccessRights(Node node) throws RepositoryException {
- Map<Principal, AccessRights> accessRights = getDeclaredAccessRights(node.getSession(), node.getPath());
- return accessRights;
+ return getDeclaredAccessRights(node.getSession(), node.getPath());
}
/**
@@ -158,39 +157,19 @@
* @throws RepositoryException if any errors reading the information
*/
public Map<Principal, AccessRights> getDeclaredAccessRights(Session session, String absPath) throws RepositoryException {
- Map<Principal, AccessRights> accessMap = new LinkedHashMap<Principal, AccessRights>();
AccessControlEntry[] entries = getDeclaredAccessControlEntries(session, absPath);
- if (entries != null) {
- for (AccessControlEntry ace : entries) {
- Principal principal = ace.getPrincipal();
- AccessRights accessPrivileges = accessMap.get(principal);
- if (accessPrivileges == null) {
- accessPrivileges = new AccessRights();
- accessMap.put(principal, accessPrivileges);
- }
- boolean allow = AccessControlUtil.isAllow(ace);
- if (allow) {
- accessPrivileges.getGranted().addAll(Arrays.asList(ace.getPrivileges()));
- } else {
- accessPrivileges.getDenied().addAll(Arrays.asList(ace.getPrivileges()));
- }
- }
- }
-
- return accessMap;
+ return mergePrivilegesFromEntries(entries);
}
private AccessControlEntry[] getDeclaredAccessControlEntries(Session session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies = accessControlManager.getPolicies(absPath);
- List<AccessControlEntry> allEntries = new ArrayList<AccessControlEntry>();
+ List<AccessControlEntry> allEntries = new ArrayList<>();
for (AccessControlPolicy accessControlPolicy : policies) {
if (accessControlPolicy instanceof AccessControlList) {
AccessControlEntry[] accessControlEntries = ((AccessControlList)accessControlPolicy).getAccessControlEntries();
- for (AccessControlEntry accessControlEntry : accessControlEntries) {
- allEntries.add(accessControlEntry);
- }
+ allEntries.addAll(Arrays.asList(accessControlEntries));
}
}
return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
@@ -270,23 +249,22 @@
AccessControlEntry[] entries = getDeclaredAccessControlEntries(session, absPath);
if (entries != null) {
for (AccessControlEntry ace : entries) {
- if (principalId.equals(ace.getPrincipal().getName())) {
- if (ace instanceof JackrabbitAccessControlEntry) {
- JackrabbitAccessControlEntry jace = (JackrabbitAccessControlEntry)ace;
- String[] restrictionNames = jace.getRestrictionNames();
- if (restrictionNames != null) {
- for (String name : restrictionNames) {
- try {
- Value value = jace.getRestriction(name);
- if (value != null) {
- restrictions.put(name, value);
- }
- } catch (ValueFormatException vfe) {
- //try multi-value restriction
- Value[] values = jace.getRestrictions(name);
- if (values != null && values.length > 0) {
- restrictions.put(name, values);
- }
+ if (principalId.equals(ace.getPrincipal().getName()) &&
+ ace instanceof JackrabbitAccessControlEntry) {
+ JackrabbitAccessControlEntry jace = (JackrabbitAccessControlEntry)ace;
+ String[] restrictionNames = jace.getRestrictionNames();
+ if (restrictionNames != null) {
+ for (String name : restrictionNames) {
+ try {
+ Value value = jace.getRestriction(name);
+ if (value != null) {
+ restrictions.put(name, value);
+ }
+ } catch (ValueFormatException vfe) {
+ //try multi-value restriction
+ Value[] values = jace.getRestrictions(name);
+ if (values != null && values.length > 0) {
+ restrictions.put(name, values);
}
}
}
@@ -308,8 +286,7 @@
* @throws RepositoryException if any errors reading the information
*/
public Map<Principal, AccessRights> getEffectiveAccessRights(Node node) throws RepositoryException {
- Map<Principal, AccessRights> accessRights = getEffectiveAccessRights(node.getSession(), node.getPath());
- return accessRights;
+ return getEffectiveAccessRights(node.getSession(), node.getPath());
}
/**
@@ -322,25 +299,32 @@
* @throws RepositoryException if any errors reading the information
*/
public Map<Principal, AccessRights> getEffectiveAccessRights(Session session, String absPath) throws RepositoryException {
- Map<Principal, AccessRights> accessMap = new LinkedHashMap<Principal, AccessRights>();
AccessControlEntry[] entries = getEffectiveAccessControlEntries(session, absPath);
+ return mergePrivilegesFromEntries(entries);
+ }
+
+ /**
+ * Loop through each of the entries to merge the granted and denied privileges into
+ * the map
+ *
+ * @param entries the entries to process
+ * @throws RepositoryException if any errors reading the information
+ */
+ private Map<Principal, AccessRights> mergePrivilegesFromEntries(AccessControlEntry[] entries)
+ throws RepositoryException {
+ Map<Principal, AccessRights> accessMap = new LinkedHashMap<>();
if (entries != null) {
for (AccessControlEntry ace : entries) {
Principal principal = ace.getPrincipal();
- AccessRights accessPrivleges = accessMap.get(principal);
- if (accessPrivleges == null) {
- accessPrivleges = new AccessRights();
- accessMap.put(principal, accessPrivleges);
- }
+ AccessRights accessPrivileges = accessMap.computeIfAbsent(principal, k -> new AccessRights());
boolean allow = AccessControlUtil.isAllow(ace);
if (allow) {
- accessPrivleges.getGranted().addAll(Arrays.asList(ace.getPrivileges()));
+ accessPrivileges.getGranted().addAll(Arrays.asList(ace.getPrivileges()));
} else {
- accessPrivleges.getDenied().addAll(Arrays.asList(ace.getPrivileges()));
+ accessPrivileges.getDenied().addAll(Arrays.asList(ace.getPrivileges()));
}
}
}
-
return accessMap;
}
@@ -348,13 +332,11 @@
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies = accessControlManager.getEffectivePolicies(absPath);
- List<AccessControlEntry> allEntries = new ArrayList<AccessControlEntry>();
+ List<AccessControlEntry> allEntries = new ArrayList<>();
for (AccessControlPolicy accessControlPolicy : policies) {
if (accessControlPolicy instanceof AccessControlList) {
AccessControlEntry[] accessControlEntries = ((AccessControlList)accessControlPolicy).getAccessControlEntries();
- for (AccessControlEntry accessControlEntry : accessControlEntries) {
- allEntries.add(accessControlEntry);
- }
+ allEntries.addAll(Arrays.asList(accessControlEntries));
}
}
return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
@@ -515,10 +497,9 @@
//strip the last segment
parentPath = absPath.substring(0, lastSlash);
}
- boolean canDelete = accessControlManager.hasPrivileges(absPath, new Privilege[] {
+ return accessControlManager.hasPrivileges(absPath, new Privilege[] {
accessControlManager.privilegeFromName(Privilege.JCR_REMOVE_NODE)
}) && canDeleteChildren(session, parentPath);
- return canDelete;
} catch (RepositoryException e) {
return false;
}
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java
index 0303154..4c5d716 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelper.java
@@ -50,17 +50,13 @@
public static Map<Privilege, Set<Privilege>> buildPrivilegeToAncestorMap(Session jcrSession, String resourcePath)
throws RepositoryException {
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(jcrSession);
- Map<Privilege, Set<Privilege>> privilegeToAncestorMap = new HashMap<Privilege, Set<Privilege>>();
+ Map<Privilege, Set<Privilege>> privilegeToAncestorMap = new HashMap<>();
Privilege[] supportedPrivileges = accessControlManager.getSupportedPrivileges(resourcePath);
for (Privilege privilege : supportedPrivileges) {
if (privilege.isAggregate()) {
Privilege[] ap = privilege.getAggregatePrivileges();
for (Privilege privilege2 : ap) {
- Set<Privilege> set = privilegeToAncestorMap.get(privilege2);
- if (set == null) {
- set = new HashSet<Privilege>();
- privilegeToAncestorMap.put(privilege2, set);
- }
+ Set<Privilege> set = privilegeToAncestorMap.computeIfAbsent(privilege2, k -> new HashSet<>());
set.add(privilege);
}
}
@@ -164,11 +160,9 @@
if (privilege3.isAggregate()) {
Privilege[] declaredAggregatePrivileges2 = privilege3.getDeclaredAggregatePrivileges();
for (Privilege privilege2 : declaredAggregatePrivileges2) {
- if (!ignorePrivilege.equals(privilege2)) {
- if (privilege2.isAggregate()) {
- filterAndMergePrivilegesFromAggregate(privilege2,
- firstSet, secondSet, filterSet, ignorePrivilege);
- }
+ if (!ignorePrivilege.equals(privilege2) && privilege2.isAggregate()) {
+ filterAndMergePrivilegesFromAggregate(privilege2,
+ firstSet, secondSet, filterSet, ignorePrivilege);
}
}
}
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
index 2ade35f..7dde987 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
@@ -61,7 +61,7 @@
/**
* default log
*/
- private final Logger log = LoggerFactory.getLogger(getClass());
+ private final transient Logger log = LoggerFactory.getLogger(getClass());
/** Sorted list of post response creator holders. */
private final List<PostResponseCreatorHolder> postResponseCreators = new ArrayList<>();
@@ -96,13 +96,11 @@
Session session = request.getResourceResolver().adaptTo(Session.class);
- final List<Modification> changes = new ArrayList<Modification>();
+ final List<Modification> changes = new ArrayList<>();
try {
handleOperation(request, response, changes);
- //TODO: maybe handle SlingAuthorizablePostProcessor handlers here
-
// set changes on html response
for(Modification change : changes) {
switch ( change.getType() ) {
@@ -124,9 +122,8 @@
response.setStatus(HttpServletResponse.SC_NOT_FOUND,
rnfe.getMessage());
} catch (Throwable throwable) {
- log.debug("Exception while handling POST "
- + request.getResource().getPath() + " with "
- + getClass().getName(), throwable);
+ log.debug(String.format("Exception while handling POST %s with %s",
+ request.getResource().getPath(), getClass().getName()), throwable);
response.setError(throwable);
} finally {
try {
@@ -233,7 +230,7 @@
* @param changes the changes to report
* @throws RepositoryException if any errors applying the changes
*/
- abstract protected void handleOperation(SlingHttpServletRequest request,
+ protected abstract void handleOperation(SlingHttpServletRequest request,
PostResponse response, List<Modification> changes) throws RepositoryException;
@@ -279,7 +276,7 @@
// redirect to created/modified Resource
int star = result.indexOf('*');
if (star >= 0) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
// anything before the star
if (star > 0) {
@@ -304,7 +301,7 @@
}
if (log.isDebugEnabled()) {
- log.debug("Will redirect to " + result);
+ log.debug("Will redirect to {}", result);
}
}
}
@@ -334,9 +331,8 @@
return true;
}
- log.debug(
- "getStatusMode: Parameter {} set to unknown value {}, assuming standard status code",
- SlingPostConstants.RP_STATUS);
+ log.debug("getStatusMode: Parameter {} set to unknown value {}, assuming standard status code",
+ SlingPostConstants.RP_STATUS, statusParam);
return true;
}
@@ -365,7 +361,7 @@
*/
protected final String externalizePath(SlingHttpServletRequest request,
String path) {
- StringBuffer ret = new StringBuffer();
+ StringBuilder ret = new StringBuilder();
ret.append(SlingRequestPaths.getContextPath(request));
ret.append(request.getResourceResolver().map(path));
@@ -453,15 +449,13 @@
}
}
- if (acl == null) {
+ if (acl == null && mayCreate) {
// no existing access control list, try to create if allowed
- if (mayCreate) {
- AccessControlPolicyIterator applicablePolicies = accessControlManager.getApplicablePolicies(resourcePath);
- while (applicablePolicies.hasNext()) {
- AccessControlPolicy policy = applicablePolicies.nextAccessControlPolicy();
- if (policy instanceof AccessControlList) {
- acl = (AccessControlList) policy;
- }
+ AccessControlPolicyIterator applicablePolicies = accessControlManager.getApplicablePolicies(resourcePath);
+ while (applicablePolicies.hasNext()) {
+ AccessControlPolicy policy = applicablePolicies.nextAccessControlPolicy();
+ if (policy instanceof AccessControlList) {
+ acl = (AccessControlList) policy;
}
}
}
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
index 72c9e19..3959885 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
@@ -57,10 +57,14 @@
@SuppressWarnings("serial")
public abstract class AbstractGetAclServlet extends SlingAllMethodsServlet {
- /**
+ protected static final String KEY_ORDER = "order";
+ protected static final String KEY_DENIED = "denied";
+ protected static final String KEY_GRANTED = "granted";
+
+ /**
* default log
*/
- private final Logger log = LoggerFactory.getLogger(getClass());
+ private final transient Logger log = LoggerFactory.getLogger(getClass());
/* (non-Javadoc)
* @see org.apache.sling.api.servlets.SlingSafeMethodsServlet#doGet(org.apache.sling.api.SlingHttpServletRequest, org.apache.sling.api.SlingHttpServletResponse)
@@ -80,7 +84,7 @@
boolean isTidy = false;
final String[] selectors = request.getRequestPathInfo().getSelectors();
- if (selectors != null && selectors.length > 0) {
+ if (selectors.length > 0) {
for (final String level : selectors) {
if("tidy".equals(level)) {
isTidy = true;
@@ -91,15 +95,16 @@
Map<String, Object> options = new HashMap<>();
options.put(JsonGenerator.PRETTY_PRINTING, isTidy);
- Json.createGeneratorFactory(options).createGenerator(response.getWriter()).write(acl).flush();
+ try (JsonGenerator generator = Json.createGeneratorFactory(options).createGenerator(response.getWriter())) {
+ generator.write(acl).flush();
+ }
} catch (AccessDeniedException ade) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (ResourceNotFoundException rnfe) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, rnfe.getMessage());
} catch (Throwable throwable) {
- log.debug("Exception while handling GET "
- + request.getResource().getPath() + " with "
- + getClass().getName(), throwable);
+ log.debug(String.format("Exception while handling GET %s with %s",
+ request.getResource().getPath(), getClass().getName()), throwable);
throw new ServletException(throwable);
}
}
@@ -123,17 +128,17 @@
Map<Privilege, Set<Privilege>> privilegeToAncestorMap = PrivilegesHelper.buildPrivilegeToAncestorMap(jcrSession, resourcePath);
AccessControlEntry[] declaredAccessControlEntries = getAccessControlEntries(jcrSession, resourcePath);
- Map<String, Map<String, Object>> aclMap = new LinkedHashMap<String, Map<String,Object>>();
- Map<String, Map<String, Object>> restrictionMap = new LinkedHashMap<String, Map<String,Object>>();
+ Map<String, Map<String, Object>> aclMap = new LinkedHashMap<>();
+ Map<String, Map<String, Object>> restrictionMap = new LinkedHashMap<>();
int sequence = 0;
for (AccessControlEntry ace : declaredAccessControlEntries) {
Principal principal = ace.getPrincipal();
Map<String, Object> map = aclMap.get(principal.getName());
if (map == null) {
- map = new LinkedHashMap<String, Object>();
+ map = new LinkedHashMap<>();
aclMap.put(principal.getName(), map);
- map.put("order", sequence++);
+ map.put(KEY_ORDER, sequence++);
}
}
//evaluate these in reverse order so the most entries with highest specificity are last
@@ -166,15 +171,15 @@
Map<String, Object> map = aclMap.get(principal.getName());
- Set<Privilege> grantedSet = (Set<Privilege>) map.get("granted");
+ Set<Privilege> grantedSet = (Set<Privilege>) map.get(KEY_GRANTED);
if (grantedSet == null) {
- grantedSet = new LinkedHashSet<Privilege>();
- map.put("granted", grantedSet);
+ grantedSet = new LinkedHashSet<>();
+ map.put(KEY_GRANTED, grantedSet);
}
- Set<Privilege> deniedSet = (Set<Privilege>) map.get("denied");
+ Set<Privilege> deniedSet = (Set<Privilege>) map.get(KEY_DENIED);
if (deniedSet == null) {
- deniedSet = new LinkedHashSet<Privilege>();
- map.put("denied", deniedSet);
+ deniedSet = new LinkedHashSet<>();
+ map.put(KEY_DENIED, deniedSet);
}
boolean allow = AccessControlUtil.isAllow(ace);
@@ -204,26 +209,26 @@
JsonObjectBuilder aceObject = Json.createObjectBuilder();
aceObject.add("principal", principalName);
- Set<Privilege> grantedSet = (Set<Privilege>) value.get("granted");
+ Set<Privilege> grantedSet = (Set<Privilege>) value.get(KEY_GRANTED);
if (grantedSet != null && !grantedSet.isEmpty()) {
JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for (Privilege v : grantedSet)
{
arrayBuilder.add(v.getName());
}
- aceObject.add("granted", arrayBuilder);
+ aceObject.add(KEY_GRANTED, arrayBuilder);
}
- Set<Privilege> deniedSet = (Set<Privilege>) value.get("denied");
+ Set<Privilege> deniedSet = (Set<Privilege>) value.get(KEY_DENIED);
if (deniedSet != null && !deniedSet.isEmpty()) {
JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for (Privilege v : deniedSet)
{
arrayBuilder.add(v.getName());
}
- aceObject.add("denied", arrayBuilder);
+ aceObject.add(KEY_DENIED, arrayBuilder);
}
- aceObject.add("order", (Integer) value.get("order"));
+ aceObject.add(KEY_ORDER, (Integer) value.get(KEY_ORDER));
Map<String, Object> restrictions = restrictionMap.get(principalName);
if (restrictions != null && !restrictions.isEmpty()) {
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
index 6bb6550..27721d4 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
@@ -93,7 +93,7 @@
/**
* default log
*/
- private final Logger log = LoggerFactory.getLogger(getClass());
+ private final transient Logger log = LoggerFactory.getLogger(getClass());
/**
* Overridden since the @Reference annotation is not inherited from the super method
@@ -110,7 +110,7 @@
* @see org.apache.sling.jackrabbit.usermanager.impl.post.AbstractPostServlet#unbindPostResponseCreator(org.apache.sling.servlets.post.PostResponseCreator, java.util.Map)
*/
@Override
- protected void unbindPostResponseCreator(PostResponseCreator creator, Map<String, Object> properties) {
+ protected void unbindPostResponseCreator(PostResponseCreator creator, Map<String, Object> properties) { //NOSONAR
super.unbindPostResponseCreator(creator, properties);
}
@@ -161,7 +161,7 @@
}
//load the principalIds array into a set for quick lookup below
- Set<String> pidSet = new HashSet<String>();
+ Set<String> pidSet = new HashSet<>();
pidSet.addAll(Arrays.asList(principalNamesToDelete));
// validate that the submitted names are valid
@@ -188,12 +188,12 @@
if (updatedAcl == null) {
// log the warning about principals where no ACE was found
for (String pid : pidSet) {
- log.warn("No AccessControlEntry was found to be deleted for principal: " + pid);
+ log.warn("No AccessControlEntry was found to be deleted for principal: {}", pid);
}
} else {
//keep track of the existing Aces for the target principal
AccessControlEntry[] accessControlEntries = updatedAcl.getAccessControlEntries();
- List<AccessControlEntry> oldAces = new ArrayList<AccessControlEntry>();
+ List<AccessControlEntry> oldAces = new ArrayList<>();
for (AccessControlEntry ace : accessControlEntries) {
if (pidSet.contains(ace.getPrincipal().getName())) {
oldAces.add(ace);
@@ -220,7 +220,7 @@
changes.add(Modification.onDeleted(pid));
}
} else {
- log.warn("No AccessControlEntry was found to be deleted for principal: " + pid);
+ log.warn("No AccessControlEntry was found to be deleted for principal: {}", pid);
}
}
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
index 59c7331..863e54a 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
@@ -17,6 +17,7 @@
package org.apache.sling.jcr.jackrabbit.accessmanager.post;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.jcr.RepositoryException;
@@ -120,13 +121,11 @@
protected AccessControlEntry[] getAccessControlEntries(Session session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies = accessControlManager.getPolicies(absPath);
- List<AccessControlEntry> allEntries = new ArrayList<AccessControlEntry>();
+ List<AccessControlEntry> allEntries = new ArrayList<>();
for (AccessControlPolicy accessControlPolicy : policies) {
if (accessControlPolicy instanceof AccessControlList) {
AccessControlEntry[] accessControlEntries = ((AccessControlList)accessControlPolicy).getAccessControlEntries();
- for (AccessControlEntry accessControlEntry : accessControlEntries) {
- allEntries.add(accessControlEntry);
- }
+ allEntries.addAll(Arrays.asList(accessControlEntries));
}
}
return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
index 5cd722e..4cb81e4 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
@@ -17,6 +17,7 @@
package org.apache.sling.jcr.jackrabbit.accessmanager.post;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.jcr.RepositoryException;
@@ -120,13 +121,11 @@
protected AccessControlEntry[] getAccessControlEntries(Session session, String absPath) throws RepositoryException {
AccessControlManager accessControlManager = AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies = accessControlManager.getEffectivePolicies(absPath);
- List<AccessControlEntry> allEntries = new ArrayList<AccessControlEntry>();
+ List<AccessControlEntry> allEntries = new ArrayList<>();
for (AccessControlPolicy accessControlPolicy : policies) {
if (accessControlPolicy instanceof AccessControlList) {
AccessControlEntry[] accessControlEntries = ((AccessControlList)accessControlPolicy).getAccessControlEntries();
- for (AccessControlEntry accessControlEntry : accessControlEntries) {
- allEntries.add(accessControlEntry);
- }
+ allEntries.addAll(Arrays.asList(accessControlEntries));
}
}
return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
index 356e6a9..837f3cc 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
@@ -113,7 +113,7 @@
protected void bindRestrictionProvider(RestrictionProvider rp) {
this.restrictionProvider = rp;
}
- protected void unbindRestrictionProvider(RestrictionProvider rp) {
+ protected void unbindRestrictionProvider(RestrictionProvider rp) { //NOSONAR
this.restrictionProvider = null;
}
@@ -132,7 +132,7 @@
* @see org.apache.sling.jackrabbit.usermanager.impl.post.AbstractPostServlet#unbindPostResponseCreator(org.apache.sling.servlets.post.PostResponseCreator, java.util.Map)
*/
@Override
- protected void unbindPostResponseCreator(PostResponseCreator creator, Map<String, Object> properties) {
+ protected void unbindPostResponseCreator(PostResponseCreator creator, Map<String, Object> properties) { //NOSONAR
super.unbindPostResponseCreator(creator, properties);
}
@@ -288,9 +288,9 @@
}
// Collect the modified privileges from the request.
- Set<String> grantedPrivilegeNames = new HashSet<String>();
- Set<String> deniedPrivilegeNames = new HashSet<String>();
- Set<String> removedPrivilegeNames = new HashSet<String>();
+ Set<String> grantedPrivilegeNames = new HashSet<>();
+ Set<String> deniedPrivilegeNames = new HashSet<>();
+ Set<String> removedPrivilegeNames = new HashSet<>();
if (privileges != null) {
Set<Entry<String, String>> entrySet = privileges.entrySet();
for (Entry<String, String> entry : entrySet) {
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
index 19ca1ff..6e3c0a3 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@org.osgi.annotation.versioning.Version("3.3.0")
+@org.osgi.annotation.versioning.Version("3.4.0")
package org.apache.sling.jcr.jackrabbit.accessmanager.post;
diff --git a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelperTest.java b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelperTest.java
index c87e602..46dee20 100644
--- a/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelperTest.java
+++ b/src/test/java/org/apache/sling/jcr/jackrabbit/accessmanager/impl/PrivilegesHelperTest.java
@@ -33,7 +33,6 @@
import javax.jcr.security.Privilege;
import org.apache.sling.jcr.base.util.AccessControlUtil;
-import org.apache.sling.jcr.jackrabbit.accessmanager.impl.PrivilegesHelper;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
import org.junit.Before;
@@ -46,19 +45,17 @@
public final SlingContext context = new SlingContext(ResourceResolverType.JCR_OAK);
private Map<Privilege, Set<Privilege>> privilegeToAncestorMap;
- private Session session;
private AccessControlManager acm;
@Before
- public void buildPrivilegesMap() throws Exception {
-
- session = context.resourceResolver().adaptTo(Session.class);
+ public void buildPrivilegesMap() throws RepositoryException {
+ Session session = context.resourceResolver().adaptTo(Session.class);
privilegeToAncestorMap = PrivilegesHelper.buildPrivilegeToAncestorMap(session, "/");
acm = AccessControlUtil.getAccessControlManager(session);
}
@Test
- public void mergeAddsMissingPrivilege() throws Exception {
+ public void mergeAddsMissingPrivilege() throws RepositoryException {
Privilege write = priv(Privilege.JCR_WRITE);
Privilege read = priv(Privilege.JCR_READ);
@@ -81,7 +78,7 @@
}
@Test
- public void mergeRemovesExistingDeniedPrivilege() throws Exception {
+ public void mergeRemovesExistingDeniedPrivilege() throws RepositoryException {
Privilege write = priv(Privilege.JCR_WRITE);
@@ -98,7 +95,7 @@
}
@Test
- public void mergeAggregateOverlappingPrivilegesOnBothSides() throws Exception {
+ public void mergeAggregateOverlappingPrivilegesOnBothSides() throws RepositoryException {
Privilege all = priv(Privilege.JCR_ALL);
Privilege write = priv(Privilege.JCR_WRITE);
@@ -117,7 +114,7 @@
}
@Test
- public void mergeAggregateNonOverlappingPrivilegesOnBothSides() throws Exception {
+ public void mergeAggregateNonOverlappingPrivilegesOnBothSides() throws RepositoryException {
Privilege read = priv(Privilege.JCR_READ);
Privilege write = priv(Privilege.JCR_WRITE);
@@ -142,7 +139,7 @@
* Validates that two identical privileges are merged
*/
@Test
- public void mergeIdenticalPrivileges() throws Exception {
+ public void mergeIdenticalPrivileges() throws RepositoryException {
Privilege read = priv(Privilege.JCR_READ);
@@ -164,7 +161,7 @@
* Validates that the <tt>jcr:modifyProperties</tt> is recognized as being aggregated into <tt>jcr:write</tt>
*/
@Test
- public void mergeAggregatePrivileges() throws Exception {
+ public void mergeAggregatePrivileges() throws RepositoryException {
Privilege write = priv(Privilege.JCR_WRITE);
Privilege modifyProps = priv(Privilege.JCR_MODIFY_PROPERTIES);
@@ -187,7 +184,7 @@
* privileges are reported
*/
@Test
- public void mergeRemoveAggregatePrivileges() throws Exception {
+ public void mergeRemoveAggregatePrivileges() throws RepositoryException {
Privilege write = priv(Privilege.JCR_WRITE);
Privilege modifyProps = priv(Privilege.JCR_MODIFY_PROPERTIES);