繁体   English   中英

从当前URL获取HTTP或HTTPS

[英]Get HTTP or HTTPS from Current URL

我只是想知道当前的URL是在HTTP还是HTTPS下。 问题是我们在测试环境中有许多自签名证书,因此无法验证证书问题。 我尝试了以下内容,但是似乎并不适用于所有情况。

String protocol = request.getProtocol();
out.println(protocol); // prints out HTTP/1.1 on self signed servers

Boolean secure = ((HttpServletRequest)pageContext.getRequest()).isSecure();
if (secure) {
  out.println("secure")
} else {
  out.println("not secure")  // always fails
}

我想我可以使用getRequest并在字符串中搜索“https” - 但我假设有一种真正支持的方法。

使用自签名或官方证书无关紧要。 如果未在部署容器中终止SSL / TLS,则isSecure()将默认返回“false”。 但是,某些部署容器(如Tomcat)可以配置为“isSecure()”调用返回“true”,即使SSL / TLS未在部署容器中终止也是如此。 例如,如果SSL在(硬件)负载均衡器处终止并且“sendRedirect()”与相对URL一起使用,这将非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM