0

当对我们的 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')}吗?

4

0 回答 0