【发布时间】:2016-07-15 04:16:37
【问题描述】:
我目前正在 JSF 中实现“自动登录”机制。实现了一个过滤器来拦截每个请求,并通过读取cookie来检查用户是否登录。
当用户第一次登录时,在托管bean中,cookie是这样保存的:
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
Cookie cookie = new Cookie("myCookieRef", value);
cookie.setPath("/");
cookie.setMaxAge(3600);
response.addCookie(cookie);
稍后如果用户执行重定向,在过滤器中,我使用以下代码检索 cookie:
Cookie[] cookies = request.getCookies();
if (cookies != null)
{
for (Cookie cookie : cookies)
{
if (name.equals("myCookieRef"))
{
return cookie;
}
}
}
request 是 HttpServletRequest 对象。
问题是返回的 cookie 总是有一个 -1 maxAge 和 null value。
不知道添加cookie时是否遗漏了什么,还是应该为cookie指定一些额外的属性?
非常感谢。
【问题讨论】: