是否有人知道如何获得"替代品#34; (或)在Spring Security的RequestMatchers中?
基本上,我想实现以下
public class ApplicationWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/**").hasAuthority("READONLY")
//.or()
.antMatchers("/api/**").hasRole("REAL_USER");
}
所以,要求用户要么具有权限READONLY(如果它是GET请求),要么具有角色REAL_USER(如果它不是GET或者用户没有权限READONLY)< / p>
感谢
答案 0 :(得分:0)
所有匹配器都是OR合并,但使用了第一个匹配的匹配器。因此,您必须完全配置每个匹配器。
您修改过的代码:
public class ApplicationWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/**").hasAnyAuthority("READONLY", "ROLE_REAL_USER")
.antMatchers("/api/**").hasRole("REAL_USER");
}