in src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java [759:785]
protected String removeAces(@NotNull String resourcePath, @Nullable String order, @NotNull Principal principal, @NotNull JackrabbitAccessControlList acl) // NOSONAR
throws RepositoryException {
AccessControlEntry[] existingAccessControlEntries = acl.getAccessControlEntries();
if (order == null || order.length() == 0) {
//order not specified, so keep track of the original ACE position.
Set<Principal> processedPrincipals = new HashSet<>();
for (int j = 0; j < existingAccessControlEntries.length; j++) {
AccessControlEntry ace = existingAccessControlEntries[j];
Principal principal2 = ace.getPrincipal();
if (principal2.equals(principal)) {
order = String.valueOf(processedPrincipals.size());
break;
} else {
processedPrincipals.add(principal2);
}
}
}
for (int j = 0; j < existingAccessControlEntries.length; j++) {
AccessControlEntry ace = existingAccessControlEntries[j];
if (ace.getPrincipal().equals(principal)) {
acl.removeAccessControlEntry(ace);
}
}
return order;
}