【发布时间】:2011-11-14 10:23:03
【问题描述】:
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,请求可能源自该mydomain.dom。
【问题讨论】:
标签: java servlets wicket mod-proxy