一旦用户成功通过身份验证,我正在使用 response.sendRedirect() 将用户重定向到主页。这是为了避免“登录重定向漏洞”。
但是,由于上述更改,我的一位客户面临着他的 HTTPS 请求被转换为 HTTP(在 URL 中带有 ip 地址)的问题。这里解释了相同的原因
http://geekexplains.blogspot.in/2008/06/https-becoming-http-in-case-of.html
现在,我如何重现该问题(或设置环境),以便验证我的修复。我以为我可以通过在 tomcat 前面设置 Apache 服务器来重现,但我无法重现上述问题。
在 Apache httpd.conf 我有以下条目
ProxyPass /myconsole ajp://localhost:8009/myconsole
ProxyPassReverse /myconsole ajp://localhost:8009/myconsole
访问应用程序,例如
http://myapacheserver/myconsole/Login.jsp
成功登录后,我被重定向到
http://myapacheserver/myconsole/Home.jsp
我希望重定向到 IP 地址。类似的东西http://10.32.24.14:8080/myconsole/Home.jsp
。
在客户环境中,他被重定向到应用服务器(tomcat)的 IP 地址。
任何指针都会有所帮助。
谢谢
注意:对于那些感兴趣的人,我通过从配置文件中获取 URI 的第一部分来构建完整的 URL。
//Get the LB URI part. Eg: https://dev.loadbalancer.com/
String loadBalancerURI = getConfig().getLoadBalancerRequestURI();
String redirectURL = request.getContextPath() + "/Home.jsp";
//Prepend the LoadBalancer URI with redirect URI
if(loadBalancerURI != null)
{
redirectURL = loadBalancerURI + "/" + redirectURL;
}
//redirect to home page
response.sendRedirect(redirectURL);
return;
编辑:有关设置的更多信息。客户有 F5 负载平衡器,SSL 流量在此停止,然后有一个 Apache 反向代理服务器,它代理到 tomcat 服务器池。问题是当我们重定向重定向 URL 时,重定向 URL 是针对 Tomcat 服务器的。我们期望在重定向 URL 中有负载均衡器 URL。
是否可以在 Apache 服务器中进行一些更改,以重写 Tomcat 发送的响应中 HTTP 标头中的 URL?