我在nginx代理(https://github.com/jwilder/nginx-proxy)后面的Tomcat中运行Grails 2.5.5应用程序
nginx配置了HTTP和HTTPS,但将所有内容重定向到HTTPS并发送Strict-Transport-Security标头。
即使我通过HTTPS通过
调用我的应用程序,我也遇到了问题我从Grails应用程序重定向到HTTP页面的登录页面:
我尝试配置grails.serverURL,但这没有任何区别。
为什么Grails / Spring Security不会停留在HTTPS上或者没有意识到我已经通过HTTPS调用了应用程序?
答案 0 :(得分:1)
我发现了问题,我可以通过在tomcat org.apache.catalina.valves.RemoteIpValve
中配置server.xml
来解决它:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="172\.18\..*"
remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto" />
这样tomcat可以正确检测到远程IP是什么,使用了什么方案以及请求是否安全。