Spring Security ACL 插件中的每个权限是什么意思?

dos*_*aki 1 grails spring spring-security

我一直在阅读文档,并提到了 5 个基本权限:

读取、写入、创建、删除和管理

前四个非常明显,我认为ADMINISTRATION意味着所有其他四个(以层次结构的方式),但根据this this other question,情况并非如此。

那么,ADMINISTRATION许可实际上意味着什么?

Bur*_*ith 5

他们没有任何意义。它们是包裹在小的权限对象中的字符串,但最终,它们是数字的占位符;1, 2, 4, 8, 16, ...

从逻辑上讲,您授予 ID 为 12347 的 User 对 ID 为 28543867 的 Book 的 WRITE 和 READ 权限,但您实际上授予的是权限 1 和 2。2 并不像您想象的那样自动暗示 1,因为这仅在我们的大脑中有意义 - 您如果您无法查看正在编辑的内容,则无法编辑。ADMIN 权限应该意味着 READ、WRITE、DELETE 等,但事实并非如此,因为对于 Spring Security 来说,它不是管理员权限,它只是 16。

这些权限只是默认设置,但您可以扩展它,删除一些不需要的权限,用不同名称替换一些权限,或者忽略整个设置并从头开始重新定义您的权限。只要您所做的更改与 API 一致,并且每个权限都有一个唯一值,即 2 的幂,那么您就可以开始授予权限 SLEEP_LATE(8)、DRIVE_20_OVER_THE_SPEED_LIMIT_AFTER_MIDNIGHT(32) 等。