Spring安全域模型授权

Spring安全域模型授权,spring,spring-mvc,spring-boot,spring-security,Spring,Spring Mvc,Spring Boot,Spring Security,Spring Security具有委托人和授权机构的基本理念。我已经实现了Spring安全性并阅读了这篇文章,基本上理解了“角色”只不过是一个以“角色”为前缀的授权 我不明白的是为什么一开始就有这样的惯例?为什么@PreAuthorize(“hasRole('XYZ')”)等同于@PreAuthorize(“hasAuthority('ROLE_XYZ')”) 像这样隔离权威有什么特别之处?目的是什么 此外,将这些“角色”应用于域模型的特定实例的最佳约定是什么。以跟踪项目的系统为例,您希望显式地

Spring Security具有委托人和授权机构的基本理念。我已经实现了Spring安全性并阅读了这篇文章,基本上理解了“角色”只不过是一个以“角色”为前缀的授权

我不明白的是为什么一开始就有这样的惯例?为什么
@PreAuthorize(“hasRole('XYZ')”)
等同于
@PreAuthorize(“hasAuthority('ROLE_XYZ')”)

像这样隔离权威有什么特别之处?目的是什么


此外,将这些“角色”应用于域模型的特定实例的最佳约定是什么。以跟踪项目的系统为例,您希望显式地授予用户查看和编辑某些项目的权限。我可以创建ROLE_EDIT_项目和ROLE_VIEW_项目,但这是应用程序范围内的。您将在何处建立角色与特定项目的关系?连接表?您是否会将Spring安全性纳入其中,或者在应用程序中从头开始构建这种类型的安全性?

不幸的是,我不知道为什么要使用这种约定,我猜可能只是遗留代码

对于问题的第二部分,我建议使用“hasPermission(project,'view')”并定义您自己的权限

可以找到更多信息