当对我们的 glassfish 5 使用 apache 代理时,转发的 URL 数据会丢失。
这发生在我们的登录@WebFilter中,并且可以使用简单的 ajax 页面更新和<h:outputText value="forward.request_uri: #{requestScope['javax.servlet.forward.request_uri']}" />
.
测试用例
本例访问 URL http://localhost:3080/News
这个 URL 代表我们的testTenant并被代理到:/tenant/testTenant/News,它是/sites/tenant/news.xhtml?tenant=testTentant使用 OCPSoft 库的重写版本。
请求标头主机 x-forwarded-host在 ajax 检查上正确设置为http://localhost:3080#{headerValues}
。
GET 请求在标记中正确
forward.request_uri: /News
标记中的 AJAX 请求错误
forward.request_uri: /tenant/testTenant/News
Java中的WebFilter错误
将其记录在@WebFilter中,即使在第一个 GET 请求中使用request.getAttribute("javax.servlet.forward.request_uri")
也会给出相同的错误 URI。
这可能是什么原因丢失?
request.getAttribute("javax.servlet.forward.request_uri")
和之间有区别#{requestScoped['request.getAttribute("javax.servlet.forward.request_uri')}
吗?