【发布时间】:2018-10-22 07:57:36
【问题描述】:
我正在使用 Java 8、Wildfly 11、Spring 4 和 Apache 2.4。我有这个设置会话 cookie 的 Java 代码
cookie = new Cookie(SESSION_ID_KEY, sessionId);
...
final String domain = request.getServerName().indexOf(".") == -1 ? request.getServerName() : request.getServerName().substring(request.getServerName().indexOf(".") + 1, request.getServerName().length());
if (!StringUtils.equals(domain, "localhost") && !isIpAddress)
{
cookie.setDomain(domain.indexOf('.') > -1 ? "." + domain : domain);
} // if
final String contextPath = request.getContextPath() != null && request.getContextPath().endsWith("/") ? request.getContextPath().substring(0, request.getContextPath().length() - 1): request.getContextPath();
cookie.setPath(contextPath);
System.out.println("setting domain " + domain + " and context path:" + contextPath);
response.addCookie(cookie);
我注意到我的浏览器中没有创建这个 cookie。然后我查看 Postman,并注意到没有创建 cookie,尽管我看到了这些响应标头...
Set-Cookie →MY.SESSION.ID=10c25010534c4dd3900851ec1dfaebeb; path=/context; domain=.compute-1.amazonaws.com
Set-Cookie →closeTrialNoteDialog=""; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:00 GMT
似乎在未创建 cookie 时,响应标头仍包含此 Set-Cookie 标头。但是,我无法判断上述任何一个有什么问题,这会阻止创建 cookie。任何见解表示赞赏,
【问题讨论】:
-
stackoverflow.com/questions/1062963/…,是一个类似的问题。另外,为什么要在公共域级别设置 cookie?
-
最大年龄=0; Expires=Thu, 01-Jan-1970 00:00:00 GMT ?
标签: java spring cookies response setcookie