Heroku 上的 Grails - spring 安全核心 secureChannel.definition 导致重定向循环

标签 grails ssl heroku spring-security

去年围绕同一主题有几个问题:

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

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

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

尝试使用:

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

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

我的 Coonfig.groovy 包含:

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

在上面链接的其中一个问题中,Burt 提到了

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

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

有没有人在任何时候成功地让这个工作?

最佳答案

看起来这是因为 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'

关于Heroku 上的 Grails - spring 安全核心 secureChannel.definition 导致重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678122/

相关文章:

file - Grails - 从 Quartz 作业和过滤器记录日志

grails - 如何在 grails 中为特定 Controller 设置布局和 View

svn - 使用 SVN 存储库设置 ReviewBoard 时服务器 SSL 证书验证失败

ssl - 尝试通过 IIS 反向代理通过 https 访问 UpSource 返回一个空页面

c# - 在生产环境中通过 TLS/SSL 连接时的服务器证书/域自定义验证

node.js - npm 错误! 404 未找到 : require-from-string

ruby-on-rails - 从 heroku 下载部分数据库

Grails:为编译添加构建任务

Grails Spring Security Plugin 使用配置类型注释设置匿名访问

python - Heroku : "Please supply the ENGINE value" 中的 Django 错误