我看了其他类似的问题,这不是重复的。
我想在单个路径模式中添加Spring过滤器。我看了其他答案,但这并没有解决我的问题。
我正在使用spring boot 2.0.0.M7 build。
我想要的是
对于所有路径/ api / v2 / **我想在此路径中添加自定义过滤器。注意:不应将BasicAuthenticationFilter和其他auth过滤器应用于此路径。对于我们的组织,我们有自定义身份验证,我在自定义过滤器中实现了。在这些路径上,执行器不应该适用。
对于所有其他路径,它应返回404.在这些路径上,执行器不应该应用。
我尝试使用2个WebSecurityConfigurerAdapter类来执行此操作,但它无效。
@Configuration
@EnableWebSecurity(debug = true)
@Order(SecurityProperties.BASIC_AUTH_ORDER - 2)
public class MySecurityConfiguration extends WebSecurityConfigurerAdapter {
/**
* {@inheritDoc}
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/actuator/**").authenticated()
.anyRequest().permitAll()
.and().httpBasic().and().formLogin()
.and().csrf().disable();
}
}
@Configuration
@Order(SecurityProperties.BASIC_AUTH_ORDER - 1)
public class MyApiSecurityConfiguration extends WebSecurityConfigurerAdapter {
/**
* isis auth filter
*/
@Autowired
@Qualifier(value = "isisAuthFilter")
private Filter isisAuthFilter;
/**
* {@inheritDoc}
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http.anonymous()
.and().antMatcher("/api/v2/**")
.addFilterAfter(isisAuthFilter, AnonymousAuthenticationFilter.class);
}
}