【发布时间】:2015-06-24 19:04:18
【问题描述】:
我发现 chrome 应用程序的关闭方式以及 JSession 或其他 http cookie 的维护方式存在严重的设计问题。
在我们当前的 Chrome 应用程序中,我们正在访问一个 Restful 站点(站点 B)以在身份验证后获取一些信息。站点 B 在响应中返回 Http only JSESSIONID cookie。
现在我无法简单地注销或重新加载或关闭=>打开 Chrome 应用程序并使用不同的身份验证来访问站点 B,因为 Chrome 应用程序再次发送相同的 JSESSIONID,该 JSESSIONID 在之前的身份验证期间收到。 更糟糕的是,即使我使用错误的用户 ID/密码传递身份验证标头,这也是允许的,因为根据 Java 规范 JSessionId 优先于身份验证标头。
在 Chrome 应用程序中,我无法删除此 Http only JSessionID 或限制 Ajax 调用(XHR 请求)以避免发送 JSession Id。即使您在 URL 中传递了错误的 JSESSIONID,这也不起作用,因为根据 Java 规范,cookie 中的 JSESSIONID 优先于 URL 中的。
即使我认为上述所有行为都符合 Java 规范,那么至少有人会期望当 Chrome 应用程序关闭或重新加载时会话 cookie 会自动删除。但似乎会话cookie没有被删除,因为相应的chrome.exe实例仍在后台运行。关闭所有 chrome 浏览器实例和/或从任务管理器手动终止所有 chrome 实例并重新加载应用程序后,它才会起作用,因为现在会话 cookie 已被删除。
谁能帮我找出 chrome 应用程序 API 或设置哪些
1) 在 Chrome 应用程序关闭并重新加载时删除会话 cookie。
2) 在 Chrome 应用程序关闭时终止 chrome.exe 实例。
我不是在寻找任何类型的手动过程。
提前致谢。 看禅
【问题讨论】:
-
你是用 XHR 做的吗?