对新用户的访问控制
Access control to the new user
- 创建用户
我们可以使用 userManager.createUser
成功创建用户
- 用户对 absPath 的访问权限
用新创建的用户创建了新会话。
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)
而可以使用管理会话访问相同的路径。
问题:我们如何为新用户提供对节点的访问。
我们必须使用管理员会话为新创建的主体分配权限。
- 创建用户
我们可以使用 userManager.createUser
成功创建用户- 用户对 absPath 的访问权限
用新创建的用户创建了新会话。
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)
而可以使用管理会话访问相同的路径。
问题:我们如何为新用户提供对节点的访问。
我们必须使用管理员会话为新创建的主体分配权限。