看一下
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)