在春天将过滤器添加到单个路径

时间:2017-12-26 14:05:19

标签: java spring spring-mvc spring-boot

我看了其他类似的问题,这不是重复的。

我想在单个路径模式中添加Spring过滤器。我看了其他答案,但这并没有解决我的问题。

我正在使用spring boot 2.0.0.M7 build。

我想要的是

  • 对于所有路径/执行器/ **,应使用默认的弹簧启动执行器。
  • 对于所有路径/ api / v1 / **允许所有路径。在这些路径上,执行器不应该适用。
  • 对于所有路径/ 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);
    }
}

0 个答案:

没有答案