Spring Security没有按照我的意愿去做

时间:2019-04-07 18:11:35

标签: spring security

我正在尝试让只有管理员才能查看/ 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访问数据,而用户则不能。

1 个答案:

答案 0 :(得分:0)

尝试将antMatchers中的URL更改为从斜杠开始,然后重试。

@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    httpSecurity
        .authorizeRequests()
        .antMatchers("/**/data").hasRole("ADMIN")
        .and().httpBasic();
    httpSecurity.csrf().disable();
}