用javax.Servlet 2.5设置httponly cookie?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (280)

下面是一个设置cookie的函数:

public void addCookie(String cookieName, String cookieValue, Integer maxAge, HttpServletResponse response) {
    Cookie cookie = new Cookie(cookieName, cookieValue);
    cookie.setPath("/mycampaigns");
    cookie.setSecure(isSecureCookie);
    cookie.setMaxAge(maxAge);
    response.addCookie(cookie);
}

有没有办法使用响应来设置cookie?下面是我在网上发现的一个例子

response.setHeader("SET-COOKIE", "[SOME STUFF]" +"; HttpOnly")
提问于
用户回答回答于

此代码不需要使用response.setHeader():

public void addCookie(String cookieName, String cookieValue, Integer maxAge, HttpServletResponse response) {  
    Cookie cookie = new Cookie(cookieName, cookieValue);
    cookie.setPath("; HttpOnly;");
    cookie.setSecure(isSecureCookie);
    cookie.setMaxAge(maxAge);
    response.addCookie(cookie);
}
用户回答回答于

使用javax.ws.rs.core.NewCookie或任何其他类,并使用有用的toString方法将cookie打印到头部。

public static String getHttpOnlyCookieHeader(Cookie cookie) {

    NewCookie newCookie = new NewCookie(cookie.getName(), cookie.getValue(), 
            cookie.getPath(), cookie.getDomain(), cookie.getVersion(), 
            cookie.getComment(), cookie.getMaxAge(), cookie.getSecure());

    return newCookie + "; HttpOnly";
}

以及使用情况:

response.setHeader("SET-COOKIE", getHttpOnlyCookieHeader(myOriginalCookie));

扫码关注云+社区

领取腾讯云代金券