Java配置中的Spring安全过滤器和多个WebSecurity配置适配器

Java配置中的Spring安全过滤器和多个WebSecurity配置适配器,java,spring,spring-security,Java,Spring,Spring Security,很抱歉在这里和旧的spring论坛交叉发布,但我没有得到任何回应,我认为当论坛被停用时,原始帖子可能已经在混乱中丢失了。无论如何 从文档中,可以通过多次扩展WebSecurityConfigureAdapter来模拟java配置中的多个元素。我已经这样做了,并且只在其中一个请求中添加了两个自定义筛选器,但奇怪的是,这些筛选器似乎应用于所有请求,即使是它不应该匹配的请求。以下是我的配置示例: @Configuration class ConfigA extends WebSecurityConfi

很抱歉在这里和旧的spring论坛交叉发布,但我没有得到任何回应,我认为当论坛被停用时,原始帖子可能已经在混乱中丢失了。无论如何

从文档中,可以通过多次扩展WebSecurityConfigureAdapter来模拟java配置中的多个元素。我已经这样做了,并且只在其中一个请求中添加了两个自定义筛选器,但奇怪的是,这些筛选器似乎应用于所有请求,即使是它不应该匹配的请求。以下是我的配置示例:

@Configuration
class ConfigA extends WebSecurityConfigurerAdapter {
    public void configure(HttpSecurity http) {
        http
          .antMatcher("/foo")
          .authorizeRequests()
               .anyRequest().fullyAuthenticated()
              .and()
         .addFilterAfter(myFilter, BasicAuthFilter.class)
        ...
   }
}

@Configuration
class ConfigB extends WebSecurityConfigurerAdapter {
    public void configure(HttpSecurity http) {
        http
          .antMatcher("/bar")
          .authorizeRequests()
               .anyRequest().fullyAuthenticated()
              .and()
​         ...
   }
}
我错过了什么?根据设计,该筛选器是否同时应用于两个/所有请求?过滤器本身是否应该确定它应该应用于哪些请求

谢谢,
Justin

当您添加过滤器时,它与Spring安全过滤器链接在一起,所以所有请求都会通过它。您可以从HttpServletRequest获取路径,并仅对所需的请求执行某些操作。