If we create a new ACL, set ourselves as the owner, create the first ACE assigning some permission to some SID, and try to change the auditing flags on the ACE, the request fails in AclAuthorizationStrategyImpl#securityCheck
:
https://github.com/spring-projects/spring-security/blob/f30cc9c5a94ce408f971f8822568dcf2d25c2ed6/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java#L100-L105
Apparently ownership is enough to give away ownership to another SID or to add, update, and delete ACEs, but it is not enough to update the auditing flags on existing ACEs.
To work around this we must make our first ACE one which gives the administration permission to the owner; securityCheck
will then accept our attempts to update the auditing flags on subsequent ACEs.
Is this intentional? If so, why? If not, can securityCheck
be changed so that ACL ownership is good enough for auditing changes too?