在现有的Spring过滤器中自定义网址格式

时间:2018-12-04 06:07:42

标签: spring spring-mvc spring-boot spring-filter

我正在Spring-boot应用程序中使用第三方库,其中包括针对所有API URL的以下过滤器。

@Bean
public FilterRegistrationBean registerCarFilter(@Value("${car.filter.order:400}") int order) {
    final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    registrationBean.setFilter(new CarFilter());
    registrationBean.addUrlPatterns("/*");
    registrationBean.setOrder(order);
    return registrationBean;
}

是否可以排除特定URL的此过滤器?以及这样做的最佳实践是什么。

如果我不想为“ / car-status” URL执行该操作怎么办?

请让我知道您对此的想法。

1 个答案:

答案 0 :(得分:0)

我没有对其进行测试,但是也许您的Car过滤器应该扩展OncePerRequestFilter。这是一个示例

https://github.com/spring-projects/spring-boot/issues/7426

在您的情况下,shouldNotFilter可能类似于:

@Override
protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
    return "/car-status".equals(request.getServletPath());
}

或request.getRequestURI()取决于您的配置。