in src/main/java/org/apache/sling/jcr/repoinit/impl/AclUtil.java [189:206]
public static void removePolicy(@NotNull Session session, @NotNull final String principalName) throws RepositoryException {
Principal principal = AccessControlUtils.getPrincipal(session, principalName);
if (principal == null) {
LOG.info("Principal {} does not exist.", principalName);
// using PrincipalImpl will prevent 'removePolicy' from failing with AccessControlException
// in case import-behavior is configured to be ABORT.
principal = new PrincipalImpl(principalName);
}
JackrabbitAccessControlManager acMgr = getJACM(session);
for (JackrabbitAccessControlPolicy policy : acMgr.getPolicies(principal)) {
// make sure not to remove the principal-based access control list but instead only drop
// resource-based access control content for the given principal
if (policy instanceof JackrabbitAccessControlList && !(policy instanceof PrincipalAccessControlList)) {
acMgr.removePolicy(policy.getPath(), policy);
}
}
}