Spring Security 4 ACL - 用户创建和数据库配置

Posted

技术标签:

【中文标题】Spring Security 4 ACL - 用户创建和数据库配置【英文标题】:Spring Security 4 ACL - User Creation and DB Configuration 【发布时间】:2016-08-04 02:45:22 【问题描述】:

我正在将 Spring Security 实施到现有应用程序中,该应用程序通过 Web 门户创建用户、分配角色等。在为 Web 服务和门户寻找最合适的安全性的过程中,Spring Security 的 ACL 给我留下了深刻的印象。但是我有这个基本的疑问。

可以通过数据库配置 SS4 中的 ACL。找到了一个帮助我实现相同目标的教程,但我觉得这种配置方式需要大量的硬连接到数据库中,因为它完全是数据驱动的。每个用户在创建时都需要一组允许/限制的域对象级别访问(将数据行插入和更新到 acl 表中),这需要为每个用户重复。这比通过数据库的数据驱动方法更容易在代码中使用@PreAuthorize 和@PostAuthorize 注释(通过SPEL)实现。

是否可以根据分配给它们的角色在 DB 中配置 ACL,而不是为每个用户定义每个对象的访问权限?

【问题讨论】:

【参考方案1】:

来自 Spring 安全文档,

ACL_SID 允许我们唯一地识别任何主体或权限 系统(“SID”代表“安全身份”)。唯一的列 是 ID、SID 的文本表示和标志 指示文本表示是否引用主体名称 或 GrantedAuthority。

因此,由于可以将角色同化为授予权限,因此您应该能够为给定角色的用户分配对象上的特定权限。

【讨论】:

谢谢,让我检查一下。

以上是关于Spring Security 4 ACL - 用户创建和数据库配置的主要内容,如果未能解决你的问题,请参考以下文章

spring security acl 不比较按位权限

Spring Security Acl 对象

Spring Security 的 ACL 配置问题

非所有者时 Spring Security 更新 acl

Spring Security - ACL readAclsById 不按 SID 过滤

Spring Security ACL 层次结构