【问题标题】:Grails on Heroku - spring security core secureChannel.definition causes redirect loopHeroku 上的 Grails - spring 安全核心secureChannel.definition 导致重定向循环
【发布时间】:2013-12-16 22:51:09
【问题描述】:

去年围绕同一主题提出了一些问题:

Grails application on Heroku with ssl

grails - spring-security-core secure-channel causing redirect loop (on Heroku)

grails - simple App to test spring-security-core secure-channel on Heroku

但当时似乎没有令人满意的答案。

我正在使用 Spring 安全插件 (1.2.7.3) 在 heroku 上运行 2.24 Grails 应用程序。

尝试使用:

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

导致该 url 映射发生重定向循环。

我的 CoConfig.groovy 包含:

  grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true#

在上面链接的一个问题中,伯特提到

 grails.plugins.springsecurity.portMapper.httpPort
 grails.plugins.springsecurity.portMapper.httpPort

可能需要更改,但我在任何地方都找不到任何文档来建议 Heroku 应该使用哪些端口 - 我尝试将 80 用于 http,443 用于 https,但遇到了同样的问题。

有没有人在任何时候成功地完成了这项工作?

【问题讨论】:

    标签: grails ssl heroku spring-security


    【解决方案1】:

    这似乎是由于 Spring Security 插件在 'x-forwarded-proto' 中使用了错误的大小写

     grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true 
    

    已设置。

    将此添加到我的 config.groovy 解决了问题

    grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
    grails.plugins.springsecurity.portMapper.httpPort = 80
    grails.plugins.springsecurity.portMapper.httpsPort = 443
    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'
    

    【讨论】:

    • 我使用的是 Grails 3.2.8,这个解决方案为我解决了 https 循环问题。
    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2012-06-01
    • 2011-10-19
    • 2016-11-18
    • 2016-06-12
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多