使用spring安全性的不同身份验证规则
我尝试在一个spring应用程序中为不同的url设置不同的身份验证规则 对于所有公共rest请求使用spring安全性的不同身份验证规则,spring,spring-boot,spring-security,Spring,Spring Boot,Spring Security,我尝试在一个spring应用程序中为不同的url设置不同的身份验证规则 对于所有公共rest请求/rest/**我要设置基本身份验证,对于内部rest调用/internal/**我需要基于ip的访问,以便某些已定义的主机可以访问而无需身份验证 我尝试了以下设置: @Configuration @Order(1) public static class ApiWebSecurityConfig extends WebSecurityConfigurerAdapter { protecte
/rest/**
我要设置基本身份验证,对于内部rest调用/internal/**
我需要基于ip的访问,以便某些已定义的主机可以访问而无需身份验证
我尝试了以下设置:
@Configuration
@Order(1)
public static class ApiWebSecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests().antMatchers("rest/**").authenticated().and().httpBasic().and().csrf().disable();
}
}
@Configuration
@Order(2)
public static class Api2WebSecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests().antMatchers("/internal/**").access("hasIpAddress('100.100.100.100/16')").anyRequest().authenticated();
}
}
但是,如果我从localhost调用内部端点,在经过大量尝试和错误后,我没有得到预期的403错误:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests().antMatchers("/rest/**").authenticated().and().httpBasic().and().csrf().disable().authorizeRequests()
.antMatchers("/internal/**").access("hasIpAddress('100.100.100.100/16')").anyRequest().permitAll().anyRequest().denyAll();
}