in src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessGetServlet.java [172:195]
protected void processACE(Map<String, RestrictionDefinition> srMap,
JackrabbitAccessControlEntry jrAccessControlEntry, Privilege[] privileges,
Map<Privilege, LocalPrivilege> map) throws RepositoryException {
boolean isAllow = jrAccessControlEntry.isAllow();
// populate the declared restrictions
@NotNull
String[] restrictionNames = jrAccessControlEntry.getRestrictionNames();
Set<LocalRestriction> restrictionItems = new HashSet<>();
for (String restrictionName : restrictionNames) {
RestrictionDefinition rd = srMap.get(restrictionName);
boolean isMulti = rd.getRequiredType().isArray();
if (isMulti) {
restrictionItems.add(new LocalRestriction(rd, jrAccessControlEntry.getRestrictions(restrictionName)));
} else {
restrictionItems.add(new LocalRestriction(rd, jrAccessControlEntry.getRestriction(restrictionName)));
}
}
if (isAllow) {
PrivilegesHelper.allow(map, restrictionItems, Arrays.asList(privileges));
} else {
PrivilegesHelper.deny(map, restrictionItems, Arrays.asList(privileges));
}
}