gpt4 book ai didi

java - 代理后面的 Servlet : getting un-proxied URL

转载 作者:行者123 更新时间:2023-12-02 09:19:24 25 4
gpt4 key购买 nike

Servlet 规范、Tomcat 或 Wicket 中是否有任何内容允许在 mod_proxy 后面运行的 Web 应用确定请求的非代理 URL

我们需要发送包含链接的电子邮件。我一直在使用 Wicket 的以下部分来构造应用程序中特定页面的 URL:

String relURL = RequestCycle.get().getRequest().getRelativePathPrefixToWicketHandler();
RequestUtils.toAbsolutePath(relURL);

由于电子邮件不会通过代理返回,因此 URL 当然不会被重写,最终看起来像 http://localhost/...

现在我能做的最好的事情就是将 URL 硬编码到我们的生产服务器,但这让我们在开发/测试机器上运行时遇到一些调试难题。

使用 InetAddress.getLocalHost().getHostName() 并不是真正的解决方案,因为这可能会返回 prod1.mydomain.com 或类似内容,而不是 mydomain.dom,请求可能源自该域。

最佳答案

如问题Retain original request URL on mod_proxy redirect的回答:

If you're running Apache >= 2.0.31 then you might try to set the ProxyPreserveHost directive as described here .

This should pass the original Host header trough mod_proxy into your application, and normally the request URL will be rebuild there (in your Servlet container) using the Host header, so the schema location should be build using the host and path infos from "before" the proxy.

关于java - 代理后面的 Servlet : getting un-proxied URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com