Spring Security ACL与授权有何不同

时间:2019-08-09 21:45:28

标签: spring spring-boot spring-security

我的想法是,基于Spring角色的访问控制是根据授予用户角色来保护资源所需的一切。现在我看到春天也有类似ACL的东西。因此,只想了解ACL是否与基于角色的授权相同。如果不是,它将补充基于角色的授权,还是这两个是互斥的或完全不相关。

1 个答案:

答案 0 :(得分:0)

角色和ACL:都与授权相关。不同之处在于他们执行访问控制的级别。

  • 角色是每个应用程序的 。例如,SYSADMIN角色可以授予编辑系统中所有用户的权限。角色在Spring Security中有时称为 authorities ,从技术上讲,角色是授权的子集。

  • ACL (访问控制列表)是每个域对象。例如,考虑一个可以上传文件的应用程序。应该允许用户A读取文件X,而应该允许用户B读取文件Y。这通过为文件X设置一个ACL和为文件Y设置一个ACL来解决。也可以有不同的 permissions ;例如用户C应该能够读取和更改文件X,但只能读取文件Y。

角色通常是静态的,而在系统中创建资源时动态添加ACL: