Java 如何在Spring安全ACL中添加权限

Java 如何在Spring安全ACL中添加权限,java,spring,spring-security,Java,Spring,Spring Security,在使用Spring安全ACL的Spring引导项目的上下文中,我向首先创建对象的用户授予管理权限: ObjectIdentity ObjectIdentity=newobjectidentityimpl(MyClass.class,myObject.getId()); Sid Sid=新的PrincipalID(SecurityContextHolder.getContext().getAuthentication()); MutableAcl acl=aclService.createAcl(

在使用Spring安全ACL的Spring引导项目的上下文中,我向首先创建对象的用户授予管理权限:

ObjectIdentity ObjectIdentity=newobjectidentityimpl(MyClass.class,myObject.getId());
Sid Sid=新的PrincipalID(SecurityContextHolder.getContext().getAuthentication());
MutableAcl acl=aclService.createAcl(objectIdentity);
acl.insertAce(0,BasePermission.ADMINISTRATION,sid,true);
aclService.updateAcl(acl);

以后如何向其他选定用户授予此对象的读写权限?

您在
acl.insertAce(0,BasePermission.ADMINISTRATION,SID,true)中添加的SID
不限于所有者SID,这里您将使用要添加的用户的SID并定义其对对象的权限。所以类似于
acl.insertAce(1,BasePermission.READ | BasePermission.WRITE,otherUserSID,true)
应该在RomanVottner上做些小动作。我注意到的一件事是,我不能像您在示例中那样按位或按权限,因为没有为
权限
类定义
运算符。这是否意味着我必须为
READ
WRITE
权限创建一个单独的ACE?我在脑海中提到了这一点,相应的
DomainObjectPermission
是自定义的。最接近的可能是@RomanVottner yes CumulativePermission看起来不错!顺便问一下,您知道关于Spring ACL的任何好的学习资源吗?我没有看到太多好的教程。一个好的开始点总是。至于这么多东西都有一个实践教程。Spring过去也有一个值得一看的示例应用程序,尽管它似乎在
3.0.7-RELEASE
之后被删除了