将 spring-boot 中的过滤器应用于特定 url 模式的注释

Annotation for applying filter in spring-boot to specific url patterns

我正在开发一个 spring-boot rest 服务,它包含两个过滤器(实现 javax.servlet.Filter 接口)。虽然一个过滤器应适用于所有 url 模式,但我想将第二个过滤器配置为仅适用于 url 模式 /api/*.

目前我正在使用以下代码执行此操作:

@SpringBootApplication
public class Application
{
    public static void main(String[] args)
    {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        SecurityFilter securityFilter = new SecurityFilter();
        registrationBean.setFilter(securityFilter);
        registrationBean.addUrlPatterns("/api/*");

        return registrationBean;
    }
}

但我的问题是,考虑到有用于设置过滤器顺序的注释 (@Order(..)),是否有注释可以做同样的事情。我试过使用 javax.servlet.annotation.WebFilter 但 spring-boot 似乎忽略了这个注释。

目前没有注释可以执行您想要的操作。我们确实有一个 open issue to support @WebFilter 我们想为 Spring Boot 1.3 修复。