[英]How do I get a list of domain objects a user has permissions for with Spring Security ACLs?
我刚刚开始使用 Spring Security ACL。 我想获取用户拥有(任何)权限的域对象列表。
例如,系统有 1000 座“建筑物”,用户可以访问任意数量的这些建筑物。 当用户登录时,我想向他们展示他们有权访问的建筑物列表。
类似于 myAclService.getObjectsForUser('myemail@gmail.com', Building.class)
我开始认为 ACL 在这个方向上不起作用,但这一定是一个共同的挑战,所以至少必须有一个模式来实现这一点,同时 ACL 不会重复数据。
欢迎任何想法,谢谢!
我相信您是对的,Spring Security 中提供的内容是正确的。 ACL 更多地是从客体的角度而不是从主体(主体)的角度。
您可以从 Spring Security 中检查所有AclService
的 SQL 代码,特别是JdbcAclService和JdbcMutableAclService 。
您想对较小的数据集使用@PostFilter注释
@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, 'admin')")
public List<Buildings> getAll();
对于较大的数据集,您可能希望在我对如何获取用户可以使用 ACL 相关表访问的对象列表的回答中使用查询
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.