【发布时间】:2017-01-20 21:46:56
【问题描述】:
使用 spring ACL,我可以为主题上的某些操作配置权限。我的应用程序很少需要自定义主题的访问权限。所以我不想为默认依赖填充 ACL,但如果 ACL 为空则需要特殊说明。
例如,我们有
branch1
|-doc1
|-doc2
|-doc3
branch2
|-doc1
|-doc2
|-doc3
user1 belongs to branch1
user2 belongs to branch2
默认实现 user1 应该可以访问 branch1 中的所有文档(如果 ACL 为空)。 user2 -> 分支 2。有时 user1 需要特殊访问权限。他需要访问 branch2.doc3 并且他应该对 branch1.doc2 有限制!
如果我尝试使用 ACL 建议以类似的方式实施解决方案,我需要为每个用户添加相应分支中每个文档的权限。由于规范化 && 许可,这种方式非常难看。所以我想实现解决方案,其中 ACL 逻辑仅用于交叉引用,默认权限允许任何用户访问同一分支中的每个文档...
默认情况下,我可以使用 @PostAuthorize 或 @PreAuthorize 之类的方法注释,以及 hasRole、hasPermission 等检查,但我无法建立权限限制强于角色的条件或基于关系用户分支对请求应用过滤器。
我知道这个想法应该可以实现,但是我没有找到相应的描述或技巧示例如何实现它......
【问题讨论】:
标签: java spring spring-security spring-security-acl