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