google-app-engine - 使用 Play Framework 和 Google App Engine 的 HttpOnly/secure cookies

标签 google-app-engine playframework session-cookies playframework-1.x httponly

我们正在使用 Play 开发应用程序! 1.2.5 并部署到 Google App Engine。 在 application.conf 中,我已将 session cookie 设置为 httpOnly 且安全:

application.session.httpOnly=true
application.session.secure=true

当我在本地发出请求时,我可以看到 header 设置正确:

Set-Cookie: PLAY_SESSION=something;Expires=Mon, 10-Dec-2012 14:51:56 GMT;Path=/;Secure;HTTPOnly

当我部署到 Google App Engine 时,我没有在设置的 cookie 上看到任何 Secure 或 HTTPOnly 标志。怎么会?

网上找不到类似的问题。我读到的最接近的东西是 GAE 不支持 response.setHttpOnly(或类似的东西)但是来自 Play!源代码 我可以看到一个简单的 Cookie 正在创建,其 httpOnly 值被设置为 bool 值并写入响应。不知道为什么 GAE 不接受这个。

谢谢!

最佳答案

调试时可以做的事情:

  • 对不同的 cookie(或将 httpOnly 参数设置为 true 的 response.setCookie)而不是 session cookie 执行 response.setHttpOnly,以查看问题是否适用于所有 cookie。
  • 在您的 Controller 中,检查 request.cookies(包含所有收到的 cookie 的映射)以查看收到的 cookie 的 httpOnly 值。
  • 根据以上两项,可能会检查您在 request.cookies 和 response.cookies 中的内容是否与 httpOnly 一致
  • 根据以上情况,可能会编辑响应 cookie 以将 httpOnly 设置为 true
  • 如果以上都不起作用,可以手动生成一个“Set-cookie” header 。从 cookies 映射中获取值,从映射中删除该 cookie 以使其不重复,并对手动创建的 cookie 执行 response.setHeader

所有这些可能无法为您提供解决方案,但可能会帮助您了解正在发生的事情以及是否可能。

关于google-app-engine - 使用 Play Framework 和 Google App Engine 的 HttpOnly/secure cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802607/

相关文章:

java - @列名忽略JPA

java - 我可以创建一个 Play!框架项目并使用现有的 Java 代码?

security - 登录页面上的 "Remember Me"功能是什么意思?

java - 解析日期字符串以过滤 GAE 查询

python - 使用grpc和cloud-datastore时如何修复App Engine Flex中的AttributeError?

java - 在 Playframework 中获取资源文件作为 InputStream

php - SQLite 作为 session 存储

angular - 浏览器关闭时如何删除 cookie?使用 angular2-cookies

android - GCM + AppEngine - 应用程序不接收推送通知

playframework - 运行 Play 命令时如何关闭颜色代码?