java - HttpServletResponse、addCookie() 的行为不符合预期

标签 java

我正在与我的应用程序进行第三方集成。我需要在用户的浏览器中设置一个服务器端cookie,以便第三方的SDK可以识别该 session 有效并允许用户与其交互。我在登录并调用(3d 方)服务时获得的实际 cookie 名称和值,现在我必须将其保存在浏览器中。 收到 cookie 信息后,我创建一个新的 javax.servlet.http Cookie 并传递此信息:

Cookie cookie = new Cookie("cookieName", "cookieValue");

然后,我将其存储在 (HttpServletResponse) 响应中,如下所示: response.addCookie(cookie);

当我从应用程序触发登录事件时,我看到此 cookie 出现在开发人员工具中的 Cookies 下。但是,一旦页面刷新,或者我转到另一个页面(在我的应用程序内),cookie 就会消失。为什么,这是个问题。我希望它保留到用户注销为止。

我也不知道我正在做的事情是否可能。跨域共享 cookie? 根据第三方的指示,一旦他们的 SDK 加载到我的应用程序中,它将开始“搜索”此特定 cookie 名称并基于该同步状态。

最佳答案

嗯,经过大量搜索,我找到了原因; cookie 的默认路径。由于cookie是在domain.com/page1上创建的,这意味着它仅对page1和以下子目录有效。它不适用于整个domain.com。 希望这会对遇到类似问题的其他人有所帮助。

关于java - HttpServletResponse、addCookie() 的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61252543/

相关文章:

java - sqlite中的更新方法没有抛出异常?

Java:KeyListeners 确实有效,但仅在我键入空格时有效

java - Android 程序失败。没有错误,没有日志猫。没有任何线索

具有多个值的 Java 映射 : container class or multiple maps?

java - 使用 switch 语句后变量不可用?

java - Spring Framework/Spring Security 中基于表单和基于证书的身份验证

java - 尝试将数组列表与方法和构造函数一起使用。这个可以优化吗?

java - 如何更改 Mandelbrot Set 显示的颜色?

java - 使方法最终化的推理

java - 在没有 Mosby 的 Android 中实现 MVI 架构