【发布时间】:2020-12-16 15:30:04
【问题描述】:
我正在使用 ABAC 模型来保护对项目中某些实体的访问。根据https://dzone.com/articles/simple-attribute-based-access-control-with-spring,我可以轻松定义一些用于更新/删除项目中实体的策略规则。
经过数小时的搜索,我发现了唯一一种通常记录在案的过滤用户可用数据的方法:使用 Spring security @PostFilter。
问题在于这种方法的性能。有哪些可用的方法可以将过滤数据的职责转移到数据库,同时又不混合业务和角色模型的逻辑?
到目前为止,我只尝试编写 JPA 规范:负责角色模型的模块会考虑用户的参数(id、group_id / organization_id)来组成逻辑表达式,以及业务需要使用的所有参数过滤器被添加到 由这样的规范表达式组成。但是这个解决方案强制只使用规范进行数据检索。此外,如何将这些表达式存储在策略存储中也不是很清楚。
【问题讨论】:
标签: java spring-security spring-el xacml abac