哪个 Spring security ACL 选项最适合分层权限

发布于 2024-10-15 06:15:05 字数 1431 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终弃我 2024-10-22 06:15:05

在这种情况下,ACL 可能有点过分了。

检查授权时,Spring EL 应该足够了,例如:

@PreAuthorize("hasRole('ROLE_School-owner') or hasRole('ROLE_School-manager')")

如果角色是分层的,那么一旦您对角色进行分组,通过使用多一层间接性,事情就会变得更加容易:

组“学校所有者”:角色 ROLE_School-owner + ROLE_School- manager + ROLE_Instructor

组“School manager”:角色 ROLE_School-manager + ROLE_Instructor

然后,如果您需要检查学校经理授权,则只需检查该角色:

@PreAuthorize("hasRole('ROLE_School-manager')")

这也会向“School Owner”组的用户授予权限,因为该组还分配了学校经理的角色。

ACL may be overkill in this situation.

When checking for authorization, Spring EL should be enough, e.g.:

@PreAuthorize("hasRole('ROLE_School-owner') or hasRole('ROLE_School-manager')")

If the roles are hierarchical, then things get even easier once you group roles, by using one more level of indirection:

Group "School owner": roles ROLE_School-owner + ROLE_School-manager + ROLE_Instructor

Group "School manager": roles ROLE_School-manager + ROLE_Instructor

Then, if you need to check for school manager authorization, you only need to check for that role:

@PreAuthorize("hasRole('ROLE_School-manager')")

This will also give permission to a user of group "School owner", since that group also has assigned the role of school manager.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文