gpt4 book ai didi

java - Spring abac 数据过滤与 Spring @PostFilter

转载 作者:行者123 更新时间:2023-12-04 17:25:39 24 4
gpt4 key购买 nike

我正在使用 ABAC 模型来保护对项目中某些实体的访问。根据https://dzone.com/articles/simple-attribute-based-access-control-with-spring ,我可以很容易地定义一些更新/删除项目中实体的策略规则。
经过数小时的搜索,我遇到了唯一一种通常记录在案的过滤用户可用数据的方法:使用 Spring security @PostFilter .
问题在于这种方法的性能。有哪些可用的方法可以将过滤数据的责任转移到数据库,同时又不混合业务和角色模型的逻辑?
到目前为止我只尝试过编写JPA规范:负责角色模型的模块考虑到用户的参数(id,group_id/organization_id)来组成逻辑表达式,并添加业务需要过滤的所有参数到
由这样的规范表达式组成。但该解决方案强制仅使用规范进行数据检索。而且,如何将这些表达式存储在策略存储中也不是很清楚。

最佳答案

您遇到了与授权类型有关的方面。我喜欢把它分解成 3 种类型:

  • 功能授权(我可以打印吗?)
  • 交易授权(我可以打印文档 #123 吗?)
  • 以数据为中心的授权(列出我可以打印的文档)

  • 前 2 种类型是二元是/否问题,它们可以很好地扩展,即您询问一个项目/记录,您会得到一个答案。
    第三种类型更棘手,因为它更多地涉及过滤而不是授权。假设您有一百万条记录。您不会反复询问是否可以查看/编辑/打印给定的记录。它不会扩展。您需要做的是反转该过程并使用所谓的部分评估或反向查询。
    一些数据库供应商(Informatica...)和授权供应商(Axiomatics...)提供动态过滤数据以实现可扩展授权的能力。我会往下看那条路。

    关于java - Spring abac 数据过滤与 Spring @PostFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63621215/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com