我只想知道当前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”-但我假设有一种真正支持的方法来做到这一点。
我可以使用getRequest并搜索字符串中的“https”-但我假设有一种真正支持的方法来做到这一点。
isSecure
应该可以工作,但它也取决于您的环境,例如您的 HTTP 反向代理配置。有任何 HTTP 服务器保护您的应用程序服务器吗? - home