Grails中的Spring Security重定向到HTTP登录页面

时间:2017-02-13 22:05:04

标签: tomcat grails nginx https

我在nginx代理(https://github.com/jwilder/nginx-proxy)后面的Tomcat中运行Grails 2.5.5应用程序

nginx配置了HTTP和HTTPS,但将所有内容重定向到HTTPS并发送Strict-Transport-Security标头。

即使我通过HTTPS通过

调用我的应用程序,我也遇到了问题

https://example.com/someurl

我从Grails应用程序重定向到HTTP页面的登录页面:

http://example.com/login/auth

我尝试配置grails.serverURL,但这没有任何区别。

为什么Grails / Spring Security不会停留在HTTPS上或者没有意识到我已经通过HTTPS调用了应用程序?

1 个答案:

答案 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是什么,使用了什么方案以及请求是否安全。