我正在尝试让只有管理员才能查看/ data的地方。 Postman允许用户和管理员访问它。想知道我在做什么错。
@EnableWebSecurity
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin").password("{noop}pw").roles("ADMIN").and()
.withUser("user").password("{noop}pw").roles("USER");
}
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.authorizeRequests()
.antMatchers("**/data*").hasRole("ADMIN")
.and().httpBasic();
httpSecurity.csrf().disable();
}
}
管理员应该能够通过/data
访问数据,而用户则不能。
答案 0 :(得分:0)
尝试将antMatchers中的URL更改为从斜杠开始,然后重试。
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.authorizeRequests()
.antMatchers("/**/data").hasRole("ADMIN")
.and().httpBasic();
httpSecurity.csrf().disable();
}