重定向到登录页面我有一个Grails应用程序,使用运行在负载均衡器后面的AWS机器上的Spring Security Core。Grails Spring Security使用https
负载均衡器解密ssl连接并转发到我们实例的端口8080,添加适当的X-Forwarded-Proto标头。
我想直接访问受保护的页面,使用https重定向到登录页面。
的请求。例如https://myapp.com/private/page应该重定向到https://myapp.com/login/auth
我把这个在我的Config.groovy:
grails.plugin.springsecurity.secureChannel.definition = [
'/login/**': 'REQUIRES_SECURE_CHANNEL'
]
但这会导致重定向循环(HTTP代码302)的HTTP登录页面( http://myapp.com/login/auth)
然后我试图只是:
grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.auth.forceHttps = true
但这会导致一个重定向(HTTP代码302)的HTTP登录页面(http://myapp.com/login/auth)
- 的问题只是生产设置(战争部署到Tomcat负载平衡器后面)presentig。
- 如果我在我的loacal开发机器上测试相同的config.groovy,重定向到https://myapp.com/login/auth发生得很好。
- 我试图指定春季安全不同httpsPort,再次它的工作我的本地开发计算机上,但它是在部署应用程序,不断重定向完全忽略到http
没有运气潜伏在类似的帖子,任何理念?
非常感谢您的帮助,但没有运气!我再现了相同的设置,也将内部端口移动到80,但它总是重定向到http ...你有什么在grails.plugin.springsecurity.secureChannel.definition?任何想法,我怎么能至少调试它? – Paull
我没有为secureChannel.definition设置值。您是否为您的生产环境设置了grails.serverURL?那是破坏我的应用程序的其他内容,但我认为这与设置云端有关。我没有用日志进行调试。我会在配置文件中进行更改并上传新的战争,然后使用浏览器浏览每个场景以查看破坏情况。然后,我会做出改变,然后再试一次。 – spock99
您使用的是什么版本的spring security? – spock99