You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Angela Schreiber (Jira)" <ji...@apache.org> on 2022/04/04 10:03:00 UTC

[jira] [Created] (SLING-11245) AclUtil.removePolicies(Session, List paths) will fail if no policy exists

Angela Schreiber created SLING-11245:
----------------------------------------

             Summary: AclUtil.removePolicies(Session, List<String> paths) will fail if no policy exists
                 Key: SLING-11245
                 URL: https://issues.apache.org/jira/browse/SLING-11245
             Project: Sling
          Issue Type: Bug
          Components: Repoinit
    Affects Versions: Repoinit JCR 1.1.38
            Reporter: Angela Schreiber
             Fix For: Repoinit JCR 1.1.40


while using 
{code}
"delete ACL on /some/path"
{code}
i noticed that it will fail if there is no policy to remove.

the reason for this is the usage of 
{code}
AccessControlUtils.getAccessControlList(session, jcrPath);
{code}

which may return an applicable policy if no policy exists yet at the given path.
however, a new applicable policy cannot be removed.

note that the other variants to delete a policy are not affected because they only retrieve existing policies.

in order to fix that usage of  AccessControlUtils.getAccessControlList(session, jcrPath) should be replaced by a local utility method 
{code}
getAccessControlList(@NotNull JackrabbitAccessControlManager acMgr, 
                                     @Nullable String path, boolean includeApplicable)
{code}
that does not retrieve applicable policies in case of 'includeApplicable' is false.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)