【问题标题】:spring filter being invoked for all url's and not matching the url pattern为所有 url 调用 spring 过滤器并且不匹配 url 模式
【发布时间】: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


【解决方案1】:

终于解决了这个问题,url模式不起作用,必须找到另一种方法来做到这一点。 基本上添加过滤器,不用担心 url 模式,但在过滤器内部跳过访问/拒绝基于以下类似逻辑的标头值

 uri.startsWith("/swagger")|| uri.startsWith("/webjars")||uri.startsWith("/v2/api-docs");
}

在我的场景中工作..可以为一些有类似问题的人工作:)

【讨论】:

    猜你喜欢
    • 2013-06-16
    • 2016-08-24
    • 2016-02-28
    • 2011-10-17
    • 2016-06-07
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多