如何要求多个角色/权限

Sto*_*ica 7 spring spring-security spring-4

据我所知,注释或对象中只有任何列表可用。尝试添加多个注释或调用要么编译失败,要么只使用最新的。@SecuredExpressionUrlAuthorizationConfigurerhasAuthority()

如何定义特定请求(匹配模式的请求集)或方法需要所有角色/权限列表?

Sto*_*ica 11

最好的解决方案似乎是

@PreAuthorize("hasRole('one') and hasRole('two') and ...")
Run Code Online (Sandbox Code Playgroud)

没有像@Secured.

  • 在我的项目中,我使用 `hasAuthority` 而不是 `hasRole`,这也适用于权威机构(只需将角色更改为权威):`@PreAuthorize("hasAuthority('one') 和 hasAuthority('two') 和 .. .")` 对于任何人都可以将 `and` 更改为 `or` (3认同)

Liv*_*ndz 6

您似乎正在使用:hasAuthority([authority])。这只需要一个权限。而是使用hasAnyAuthority([authority1,authority2]). 这允许您一次指定多个权限,并且任何一个都可以在授权中考虑。在这里参考官方 spring 文档。只需在页面中找到文本:hasAnyAuthority([authority1,authority2])

例如,在您的控制器方法中,添加:@PreAuthorize("hasAnyAuthority('permission1','permission2')")

  • 正如问题中所述,这是*任何*,而不是*全部*。 (14认同)