使用 RequestDispatcher.forward 时调用 Jersey 2.x 过滤器链
Invoke Jersey 2.x filter chain when using RequestDispatcher.forward
有没有人知道如何在使用 RequestDispatcher.forward() 时在 Jersey-2.x 应用程序中正确处理过滤器?
RequestDispatcher dispatcher=pCtx.getRequestDispatcher("/app2");
dispatcher.forward(request, response);
当我在两个都使用 Jersey-2.5+ 的 Web 应用程序之间进行转发时,被重定向到的 Web 应用程序包含请求过滤器。它们应该在转发时被调用(比如直接请求应用程序时)但不是。
几个 post 概述了在 web.xml 中使用带有 <dispatcher>
标签的 <filter-mapping>
元素,例如 here。但这在我看来就像 javax servlet 过滤器,如果可能的话,我不确定如何包含它。
有没有办法用 Jersey-2.x 过滤器实现同样的效果?
更新:
我的 ContainerRequestFilter
是 post 匹配过滤器,因为它们没有用 @PreMatching
注释
正如我发现的那样,RequestFilter
s 实际上被调用了。我没有认错。真正没有调用的是 tomcat 容器身份验证,如 realm
。但这对我来说很清楚,因为当任何应用程序处理请求时我们已经通过了 tomcat 层。
有没有人知道如何在使用 RequestDispatcher.forward() 时在 Jersey-2.x 应用程序中正确处理过滤器?
RequestDispatcher dispatcher=pCtx.getRequestDispatcher("/app2");
dispatcher.forward(request, response);
当我在两个都使用 Jersey-2.5+ 的 Web 应用程序之间进行转发时,被重定向到的 Web 应用程序包含请求过滤器。它们应该在转发时被调用(比如直接请求应用程序时)但不是。
几个 post 概述了在 web.xml 中使用带有 <dispatcher>
标签的 <filter-mapping>
元素,例如 here。但这在我看来就像 javax servlet 过滤器,如果可能的话,我不确定如何包含它。
有没有办法用 Jersey-2.x 过滤器实现同样的效果?
更新:
我的 ContainerRequestFilter
是 post 匹配过滤器,因为它们没有用 @PreMatching
正如我发现的那样,RequestFilter
s 实际上被调用了。我没有认错。真正没有调用的是 tomcat 容器身份验证,如 realm
。但这对我来说很清楚,因为当任何应用程序处理请求时我们已经通过了 tomcat 层。