【发布时间】:2016-10-02 16:50:14
【问题描述】:
我在我的 Spring Boot 应用程序中使用 FilterRegistrationBean 注册 @bean 和 tomcat:
Filter filter = new MyFilter() { ****populate my-header-bean from request***** };
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/hr/*");
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(filter);
registration.setUrlPatterns(urlPatterns);
即使在指定 urlPattern 之后,也会为所有 URL 调用过滤器,其行为类似于 /*。是否有任何其他方法可以注册过滤器以过滤与/hr/* 匹配的 URL 的 HTTP 标头。
过滤器中的 my-header-bean 也可用作我的控制器中的 spring-autowire。
【问题讨论】:
-
您找到解决方法了吗?
-
不,没有。还在寻找
-
终于解决了这个问题,url patterns 不起作用,必须找到另一种方法来做到这一点。基本上添加过滤器,但在过滤器内部跳过访问/拒绝基于类似逻辑的标头值,如下 uri.startsWith("/swagger")|| uri.startsWith("/webjars")||uri.startsWith("/v2/api-docs"); }
标签: java spring-mvc spring-boot servlet-filters