spring - Spring Security ACL 与 Authorization 有何不同
问题描述
我的想法是,基于弹簧角色的访问控制是根据授予用户的角色保护资源所需的一切。现在我看到spring也有类似ACL的东西。所以只想了解ACL是否与基于角色的授权相同。如果不是,它是否补充了基于角色的授权,或者这两者是排他的还是完全不相关的。
解决方案
角色和 ACL:s 都与授权有关。不同之处在于他们在哪个级别进行访问控制。
角色是每个应用程序。例如,SYSADMIN 角色可以授予编辑系统中所有用户的权限。在 Spring Security 中角色有时被称为权限,从技术上讲,角色是权限的子集。
ACL(访问控制列表)是每个域对象。例如,考虑一个可以上传文件的应用程序。应该允许用户 A 读取文件 X,并且应该允许用户 B 读取文件 Y。这是通过为文件 X 设置一个 ACL,为文件 Y 设置一个 ACL 来解决的。也可以有不同的权限;例如,用户 C 应该能够读取和更改文件 X,但只能读取文件 Y。
角色通常是静态的,而 ACL:s 是在系统中创建资源时动态添加的。
推荐阅读
- sql - ORA-01830: 限制数据取决于特定的时间变化
- c++ - qmake - 未检测到配置更改并且库不会重新编译
- regex - Openrefine,匹配括号内的文本
- android - 回收站视图中的 DiffUtils 与稳定 ID
- excel - Excel VBA 从选定行复制特定单元格并粘贴指定列其他工作簿
- ios - Realm 并不总是从云中返回其主键的对象,尽管它确实存在于云中
- camunda - Java 代码委托使用的通用上下文基类是什么?
- c# - 如何使用 LINQ C# 将几个属性的值从一个列表更改为另一个列表:
- php - 准备好的语句 MySQL UPDATE 不更新数据库值
- c++ - 在类中声明一个常量“列表”