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

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

Java 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.antMatcher
指出这
HttpSecurity
仅适用于以开头
URL/api/

4创建的另一个实例

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

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

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



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存