将 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 修复。
我正在开发一个 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 修复。