-1

我有一个简单的 hello world 应用程序,带有 h2 数据库、spring 数据和 spring 安全性。我的安全配置如下所示:

@Configuration
class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(
                requests -> requests
                        .mvcMatchers("/h2-console", "/h2-console/**").permitAll()
                        .anyRequest().authenticated()
        );
        http.csrf().disable();
        http.headers().frameOptions().disable();
        http.formLogin(login -> login.loginPage("/login").permitAll());
    }
}

不幸的是,当我尝试访问 h2 控制台时,我被重定向到登录页面,但如果我只是将 mvcMatchers() 更改为 antMatchers() ,如下所示:

@Configuration
class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(
                requests -> requests
                        .antMatchers("/h2-console", "/h2-console/**").permitAll()
                        .anyRequest().authenticated()
        );
        http.csrf().disable();
        http.headers().frameOptions().disable();
        http.formLogin(login -> login.loginPage("/login").permitAll());
    }
}

然后一切正常,我可以从网络浏览器访问 H2 控制台。为什么 mvcMatchers 不能按我的预期工作?网址格式错了吗?

4

0 回答 0