【发布时间】:2012-02-28 06:47:46
【问题描述】:
我正在使用 Heroku 来部署我的 Play!框架应用程序。我有一个使用标准结构的表单
public static void showForm() {
render();
}
public static void handleForm(@Required param, @Required otherParam, etc) {
if (validation.hasErrors()) {
validation.keep();
showForm();
} else {
//process form parameters
}
}
这适用于:
- 在
localhost:9000运行 HTTP 的开发机器 - heroku 在
www.myapp.com运行 HTTP - 在
localhost:9443运行 HTTPS 的开发机器
但是,对于在 Heroku 上通过 HTTPS 在 secure.myapp.com 使用基于主机名的 SSL 执行此操作的表单,验证不会显示。我认为问题在于validation.keep() 不起作用。
如果validation.keep() 制作了一个cookie,而问题与www.myapp.com 和secure.myapp.com 之间的差异有关,那么我可能会遇到更深层次的问题,因为:
- 我已经有
application.defaultCookieDomain=.myapp.com,根据this question。 - 我认为 GET 和 POST 都是通过 HTTPS 进行的,所以我认为它们具有相同的域...
- 表单的 GET 肯定是通过 HTTPS 的
- 处理表单数据时,其结果肯定会通过 HTTPS 显示
- 我猜 POST 可能是通过 HTTP 进行的(因此
www.*而不是secure.*,但我不确定如何检查)。
任何人都猜测出了什么问题?
【问题讨论】:
标签: https heroku playframework session-cookies