通过https访问网页,request.getScheme()获取到的是http,而不是https

问题:通过https访问网页,request.getScheme()获取到的是http

我的目的是:

通过http访问网页,request.getScheme()获取到的是http;

通过https访问网页,request.getScheme()获取到的是https;

解决办法:

1,nginx在location处加上proxy_set_header X-Forwarded-Scheme $scheme;(项目没有用到nginx可以不加)

2,在Tomcat的server.xml的Engine中添加如下代码

  <Engine defaultHost="localhost" name="Catalina">
  <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
  </Engine>

完成上面两个步骤即可。第二个步骤是关键。

正在加载评论...