玩! Heroku上的框架:validation.keep()无法通过HTTPS工作

时间:2012-02-06 19:37:51

标签: https heroku playframework session-cookies

我正在使用Heroku来部署我的游戏!框架应用程序我有一个使用

标准结构的表单
public static void showForm() {
    render();
}

public static void handleForm(@Required param, @Required otherParam, etc) {
    if (validation.hasErrors()) {
        validation.keep();
        showForm();
    } else {
        //process form parameters
    }
}

这适用于:

  • dev机器在localhost:9000
  • 运行HTTP
  • heroku在www.myapp.com
  • 运行HTTP
  • dev机器在localhost:9443
  • 运行HTTPS

但是,对于使用基于主机名的SSL在secure.myapp.com通过HTTPS在Heroku上执行此操作的表单,验证不会显示。我认为问题在于validation.keep()无效。

如果validation.keep()制作了Cookie,而问题与www.myapp.comsecure.myapp.com之间存在差异,那么我可能会遇到更深层次的问题,因为:

  • 根据this question,我已经application.defaultCookieDomain=.myapp.com
  • 我认为GET和POST都是通过HTTPS发生的,所以我认为他们有相同的域名...
    • 表单的GET绝对是通过HTTPS
    • 处理表单的数据时,其结果肯定会通过HTTPS
    • 显示
    • 我想POST可能是通过HTTP发生的(因此www.*而不是secure.*,但我不确定如何检查。

有人猜测出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

目前在heroku上播放的ssl(x-forwarded-proto)支持不兼容,导致所有请求都被认为是不安全的。

https://play.lighthouseapp.com/projects/57987/tickets/1385-requests-are-never-secure-on-heroku-when-using-ssl

那么这可能与您的浏览器发回的cookie有关吗?