【发布时间】:2019-12-17 15:09:48
【问题描述】:
我认为基于 Spring 角色的访问控制是根据授予用户的角色保护资源所需的一切。现在我看到spring也有类似ACL的东西。所以只想了解ACL是否与基于角色的授权相同。如果不是,它是否补充了基于角色的授权,或者这两者是排他性的还是完全不相关的。
【问题讨论】:
标签: spring spring-boot spring-security
我认为基于 Spring 角色的访问控制是根据授予用户的角色保护资源所需的一切。现在我看到spring也有类似ACL的东西。所以只想了解ACL是否与基于角色的授权相同。如果不是,它是否补充了基于角色的授权,或者这两者是排他性的还是完全不相关的。
【问题讨论】:
标签: spring spring-boot spring-security
Roles 和 ACL:s 都与授权有关。区别在于他们在哪个级别进行访问控制。
角色是每个应用程序。例如,SYSADMIN 角色可以授予编辑系统中所有用户的权限。在 Spring Security 中,角色有时称为 authorities,从技术上讲,角色是权限的子集。
ACL(访问控制列表)每个域对象。例如,考虑一个可以上传文件的应用程序。应该允许用户 A 读取文件 X,并且应该允许用户 B 读取文件 Y。这是通过为文件 X 设置一个 ACL 为文件 Y 设置一个 ACL 来解决的。也可以有不同的权限;例如用户 C 应该能够读取和更改文件 X,但只能读取文件 Y。
角色通常是静态的,而 ACL:s 是在系统中创建资源时动态添加的。
【讨论】:
Long id 属性的类作为域类。但是可以自定义,因此任何具有唯一键的类都可以是域类。使用 JPA 时,@Entity 类是典型的域类。