Google app engine HttpOnly/secure Cookie与Play框架和Google应用程序引擎

Google app engine HttpOnly/secure Cookie与Play框架和Google应用程序引擎,google-app-engine,playframework,session-cookies,playframework-1.x,httponly,Google App Engine,Playframework,Session Cookies,Playframework 1.x,Httponly,我们正在使用Play开发一个应用程序!1.2.5并部署到Google App Engine。 在application.conf中,我已将会话cookie设置为httpOnly且安全: application.session.httpOnly=true application.session.secure=true 当我在本地激发请求时,我可以看到头被正确设置: Set-Cookie: PLAY_SESSION=something;Expires=Mon, 10-Dec-2012 14:51:

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

application.session.httpOnly=true
application.session.secure=true
当我在本地激发请求时,我可以看到头被正确设置:

Set-Cookie: PLAY_SESSION=something;Expires=Mon, 10-Dec-2012 14:51:56 GMT;Path=/;Secure;HTTPOnly
当我部署到Google App Engine时,我在设置的Cookie上看不到任何安全或HTTPOnly标志。为什么

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


谢谢

调试时可以执行的操作:

  • 仅在另一个cookie(或httpOnly参数设置为true的response.setHttpCookie,而不是会话一)上执行response.setHttpOnly,以查看问题是否适用于所有cookie
  • 在控制器中,检查request.cookies,这是一个包含所有已接收cookies的映射,以查看已接收cookies的httpOnly值
  • 根据以上两种情况,可以检查request.cookies和response.cookies中的内容是否与httpOnly一致
  • 根据上述情况,可以编辑响应cookie以将httpOnly设置为true
  • 如果以上都不起作用,可能需要手动生成一个“Set cookie”头。从cookies映射中获取值,从映射中删除该cookie以避免其重复,并使用手动创建的值执行response.setHeader

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

如果您仍然遇到此问题,您是否尝试过使用App Engine设置这些参数?事实上,您可能对这个灵活的Java8/Jetty9.3测试版感兴趣,它集成了Servlet3.1,因此应该允许您指定这两个cookie参数。