我有一个 Apache 代理,它将对 /foo/bar 的请求重定向到在 /foo 上运行的 Web 应用程序。问题是我的过滤器链中有一个 Servlet 过滤器,它要求请求仍然是 /foo/bar 格式。这是一个我无法更改的身份验证过滤器,这导致登录到 /foo 而不是 /foo/bar 后重定向不正确。
在其他类似的线程之后,我尝试将 RequestDispatcher.forward 与修改后的请求和 HttpServletResponse.sendRedirect 一起使用来修改 URL。第一种方法似乎跳过了我的过滤器链的其余部分,第二种方法转到代理,然后将 URL 修改回 /foo。
有没有办法解决。理想情况下,我想要的只是身份验证过滤器获取 /foo/bar 请求,而链的其余部分获取 /foo 请求。