http转换为https进入无限循环

时间:2010-12-15 14:58:24

标签: java jsp servlets

我想将页面http://重定向到jsp中的https://

我和我有一些代码,但它提出了一些问题。

<%

String req_protocol = request.getProtocol().toLowerCase();

String convertHttps = req_protocol.substring(0, req_protocol.indexOf("/")).toLowerCase();

 if(convertHttps.equals("http")){

  response.sendRedirect("https://xyz.com/signup/signup.jsp");

 }  

%>

它将错误页面作为“无限循环”。

2 个答案:

答案 0 :(得分:5)

使用request.isSecure()确定其http://https://

此转换更适合FilterServlet而不是jsp

答案 1 :(得分:0)

你没有多提及你的环境,但这里还有其他一些要记住的事情。

除了org.life.java提到的内容之外,如果你的应用服务器前面有一个反向代理(想想Tomcat,Glassfish等前面的Apache或Pound),那么SSL请求就有可能正在代理处终止,并且传递给容器/应用程序服务器的请求只是HTTP。在这种情况下,您通常希望代理服务器在请求上设置标头,以便Java端可以确定它是安全请求。

如果不这样做将导致无限重定向,因为Java端将始终检测到它是HTTP并重定向。