Grails Spring Security secureChannel不重定向https?

时间:2013-05-17 08:59:51

标签: grails ssl https spring-security jelastic

我目前正在处理我正在使用的应用程序,我在云端使用(Jelastic)。我已将SSL证书添加到我的云环境中,并希望能够在某些页面上使用https。我已经实现了以下方法:

方法1:

grails.plugins.springsecurity.secureChannel.definition = [
   '/login/**':         'REQUIRES_SECURE_CHANNEL'
]

方法2:

grails.plugins.springsecurity.secureChannel.definition = [
   '/login/**':         'REQUIRES_SECURE_CHANNEL'
]

grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugins.springsecurity.secureChannel.secureHeaderName = 'X-Forwarded-Proto'
grails.plugins.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugins.springsecurity.secureChannel.insecureHeaderName = 'X-Forwarded-Proto'
grails.plugins.springsecurity.secureChannel.insecureHeaderValue = 'https'

因此,对于方法1,它部分起作用,当您转到HTTP中的索引页面然后尝试转到登录页面时,您将看到一条错误消息:

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
然而,

方法2似乎根本不起作用,当我进入HTTP上的登录页面时,它不会像我期望的那样重定向我,只是似乎在HTTP上工作很奇怪。

我提到这个解决方案是在Jelastic中提供的,所以不确定是否会导致一些问题,但提供的任何帮助都会很棒。

提前致谢

1 个答案:

答案 0 :(得分:2)

我使用以下配置部署到prod服务器。然后它开始在https上。我使用的是jdk 1.8和Tomcat 8。

grails.plugin.springsecurity.portMapper.httpPort = 80
grails.plugin.springsecurity.portMapper.httpsPort = 443
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'X-FORWARDED-PROTO'
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'X-FORWARDED-PROTO'
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https'
grails.plugin.springsecurity.auth.forceHttps = true
grails.plugin.springsecurity.secureChannel.definition = [
        '/**':               'REQUIRES_SECURE_CHANNEL'
]