Spring Security:多个HTTP配置不起作用

Spring Security:多个HTTP配置不起作用,第1张

Spring Security:多个HTTP配置不起作用

看一下

Spring Security Reference

@EnableWebSecuritypublic class MultiHttpSecurityConfig {  @Autowired  public void configureGlobal(AuthenticationManagerBuilder auth) { 1      auth          .inMemoryAuthentication()   .withUser("user").password("password").roles("USER").and()   .withUser("admin").password("password").roles("USER", "ADMIN");  }  @Configuration  @Order(1) 2  public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {      protected void configure(HttpSecurity http) throws Exception {          http   .antMatcher("/api/**")         3   .authorizeRequests()       .anyRequest().hasRole("ADMIN")       .and()   .httpBasic();      }  }      @Configuration       4  public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {      @Override      protected void configure(HttpSecurity http) throws Exception {          http   .authorizeRequests()       .anyRequest().authenticated()       .and()   .formLogin();      }  }}

1正常配置身份验证

2创建一个

WebSecurityConfigurerAdapter
包含的实例
@Order
以指定
WebSecurityConfigurerAdapter
应首先考虑的对象。

3

http.antMatche
r指出这
HttpSecurity
仅适用于以开头
URL/api/

4创建的另一个实例

WebSecurityConfigurerAdapter
。如果URL不以
/api/
该配置开头,则将使用此配置。此配置被认为是之后的,
ApiWebSecurityConfigurationAdapter
因为它的@Order值是after 1(没有@Order默认值是last)。

你的第二个配置未使用,因为你的第一个配置匹配

/**(
antMatcher
配置)。而且你的第一个配置仅限制
/admin/**
,默认情况下允许所有其他URL。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4891633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存