问题描述
- 创建用户
我们可以使用 userManager.createuser 成功创建用户
- 用户对 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)
而可以使用管理会话访问相同的路径。
问题:我们如何为新用户提供对节点的访问权限。
解决方法
我们必须使用管理会话为新创建的主体分配权限。