【发布时间】:2018-12-10 06:15:37
【问题描述】:
我在我的项目中使用 Spring Security。 我有一个条件,匿名用户应该能够从数据库中读取,而只有授权用户才能添加/更新/删除。 我们如何在 security-config 中提及这种情况?
.antMatchers("/user/**").permitAll()
允许所有需要进行身份验证,但我希望即使是未经身份验证的用户也可以通过 GET 方法访问。
@RequestMapping("/user")
@PreAuthorize("hasAuthority('USER')")
public List<UserAll> getAll() {
return userService.getAll();
}
这里我怎么提这个功能也应该被匿名用户访问?
【问题讨论】:
-
你可以改成
hasAnyRole('USER', 'ANONYMOUS') -
@fg78nc 那是控制器部分。在 .antMatchers("/user/**").permitAll() 部分怎么样。它将需要身份验证。
-
.antMatchers("/user").access("hasAnyRole('USER', 'ANONYMOUS')")将匿名视为特殊的隐含角色。 -
@fg78nc 在这样做并通过没有身份验证的邮递员进行测试时,它表示访问此资源需要完全身份验证。我们是否必须在某处声明任何匿名用户都拥有“ANONYMOUS”的权限。
-
不,您不必声明“匿名”权限。您究竟想访问哪个资源?
标签: spring spring-boot spring-security