首页 > 解决方案 > Spring Security ACL 与 Authorization 有何不同

问题描述

我的想法是,基于弹簧角色的访问控制是根据授予用户的角色保护资源所需的一切。现在我看到spring也有类似ACL的东西。所以只想了解ACL是否与基于角色的授权相同。如果不是,它是否补充了基于角色的授权,或者这两者是排他的还是完全不相关的。

标签: springspring-bootspring-security

解决方案


角色和 ACL:s 都与授权有关。不同之处在于他们在哪个级别进行访问控制。

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

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

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


推荐阅读