对新用户的访问控制

问题描述

  1. 创建用户

我们可以使用 userManager.createuser 成功创建用户

  1. 用户对 absPath 的访问权限

使用新创建的用户创建了 newSession。

String[] privileges = new String[]{PrivilegeConstants.JCR_ALL};
AccessControlUtils.addAccessControlEntry(newSession,absPath,new PrincipalImpl(user.getUsername()),privileges,true);

引起:javax.jcr.PathNotFoundException:/advitium/repo 没有树 在 org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.getTree(AbstractAccessControlManager.java:164) 在 org.apache.jackrabbit.oak.security.authorization.accesscontrol.AccessControlManagerImpl.getApplicablePolicies(AccessControlManagerImpl.java:195)

而可以使用管理会话访问相同的路径。

问题:我们如何为新用户提供对节点的访问权限。

解决方法

我们必须使用管理会话为新创建的主体分配权限。