Nicola Scendoni created OAK-12190:
-------------------------------------

             Summary: Add createUserWithAbsolutePath and 
createGroupWithAbsolutePath to UserManager API
                 Key: OAK-12190
                 URL: https://issues.apache.org/jira/browse/OAK-12190
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: security-spi
            Reporter: Nicola Scendoni


*Description:*

The existing {{UserManager.createUser(String, String, Principal, String)}} and 
{{createGroup(String, Principal, String)}} methods accept an 
{{intermediatePath}} parameter that is a relative hint. Implementations may 
resolve this hint differently (e.g., auto-generating hashed sub-paths), making 
it impossible to guarantee the exact JCR location of the new authorizable node.

This ticket adds two new default methods to the UserManager interface that 
accept an absolute Oak repository path, giving callers precise control over 
where the user or group node is created:

  - {{createUserWithAbsolutePath(String userID, String password, Principal 
principal, String absoluteOakPath)}}
  - {{createGroupWithAbsolutePath(String groupID, Principal principal, String 
oakPath)}}

  Both methods are defined as default on the interface, throwing 
{{UnsupportedRepositoryOperationException}} to preserve backward compatibility 
with existing implementations.

*Changes:*

  - {{oak-jackrabbit-api}} — Added the two new default methods to 
{{{}UserManager{}}}; bumped package version from {{2.4.5}} to {{2.5.0}}
  - {{oak-core}} — Implemented both methods in {{{}UserManagerImpl{}}}, reusing 
the existing {{userProvider.createUser/createGroup}} with the supplied absolute 
path
  - {{oak-jcr}} — Added delegation in {{UserManagerDelegator}} wrapping results 
in UserDelegator/GroupDelegator
  - Tests — Added integration tests in {{IntermediatePathTest}} (path 
correctness, wrong root, duplicate ID) and unit tests in 
UserManagerDelegatorTest



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to