当前位置: 首页 > 知识库问答 >
问题:

spring security acl管理权限

杨君之
2023-03-14

我试图用spring security ACL强制执行一个新的应用程序,经过一些阅读后,我对每个ACE的权限都有问题。我希望,如果主体对域对象实例具有管理权限(16),则能够访问具有以下注释的方法:

@Override   
@PostFilter("hasPermission(filterObject, 'READ')")
public List<Project> findAllProjects() {
    TypedQuery<Project> tq = em.createNamedQuery("Project:findAll", Project.class);
    List<Project> projects = tq.getResultList();
    return projects;
}

但是

    @PostFilter("hasPermission(filterObject, 'ADMINISTRATION') OR hasPermissions(filterObject,'READ')")

它似乎起作用了。
所以,我的问题是:这些权限不是分层的吗?
我的意思是,为什么我必须对一个具有读取权限的方法显式指定admin权限?admin不是比read“大”吗?
我在想,如果我授予用户admin权限,该用户将能够访问比admin“低”的操作(C、R、U、D)保护的所有方法/对象。

共有1个答案

蒋硕
2023-03-14

简短的回答:不,权限不是分层的,开箱即用。

如果希望它们是分层的,则需要对PermissionEvaluator或类似内容进行自定义实现。

 类似资料:
  • 权限管理 权限管理机制是 hyperledger fabric 项目的一大特色。下面给出使用权限管理的一个应用案例。 启动集群 首先下载相关镜像。 $ docker pull yeasy/hyperledger:latest $ docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest $ docker pull

  • 添加 找到一个你要添加的位置“右击” 在弹出的下拉选项中选择“添加同级”或“添加下级” 在弹出的对话框输入相关信息 路由名称 路由路径,支持 /app/{namespace}/{id:+0~9} 或 /app/:namespace/:id 两种写法 Icon: 如果是菜单填ant.design支持的icon就行 HTTP请求的Method,支持 GET、POST、DELETE、PUT等 是否是菜单

  • 细节 一个文件主要包含下列属性,ls -l - rwxrwxrwx user group date filename 111 101 101 归属用户的权限 归属群组的权限 其它用户的权限 归属用户 归属群组 日期信息 文件名称 对于文件夹,必须拥有它的可执行权限,才能够使用 cd 命令进入该文件夹;拥有可读权限,才能够使用 ls 命令查看该文件夹的文件列表。 root用户

  • 用户角色定义共有4种,分别是创建者、管理员、分析师和普通用户,按权限由大到小排列。 1.1. 1. 概念理解 创建者 产品唯一创建人,需个人基本信息及邮箱或手机号码认证,最高权限,可申请更换; 管理员 产品级别,数量可设置多个,与创建者之间除更换创建者之外,权限相同; 分析师 分析功能全部权限,不具有应用、用户权限管理功能权限; 普通用户 查看被授权的看板(未开放功能); 角色权限速查表: 权限类

  • 本节作者:cameluo Shield 是 Elastic 公司官方发布的权限管理产品。其主要特性包括: 提供集群节点身份验证和集群数据访问身份验证 提供基于身份角色的细粒度资源和行为访问控制,细到索引级别的读写控制 提供节点间数据传输通道加密保护输出传输安全 提供审计功能 以插件的形式发布 License管理策略 Shield 是一款商业产品,不过提供 30 天免费试用,试用期间是全功能的。过期

  • 链接 Shield Search-Guard 在 Elasticsearch 2.x 上的运用

  • 9.1. 数据权限管理 获取权限列表 http://localhost:1000/api/power/1.0.0/query 获取之前保存的的数据权限信息 http://localhost:1000/api/power/1.0.0/getJson 查询根据token获取当前团队下的用户 http://localhost:1000/api/team/1.0.0/users token是登录成功以后返

  • 除了为每一个用户设置权限,权限管理员 为连接及其数据库对象的权限提供另一查看方式。注意:只限于 MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。 从用户的对象列表工具栏点击 权限管理员 并按照下列步骤进行: 在查看树展开节点直至到达目标对象。 选择对象并点击 添加权限 以打开窗口。 勾选用户以显示网格在右边的面板上。 在网格里,对照在 权限 列出的权限,勾