我需要限制對包含會話令牌的cookie的訪問,以便javascript無法訪問它。 給出的建議是在Cookie上設置Secure和HttpOnly標誌。在Spring MVC控制器中創建的Cookie上設置http-only
我在使用@ResponseBody時沒有設置Cookie,所以我在Cookie中設置了HandlerInterceptor。
public class COOKIEFilter implements org.springframework.web.servlet.HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
Cookie cookie = new Cookie("timestamp", new Long(new Date().getTime()).toString());
cookie.setSecure(true);
// how do I set the http-only flag?
httpServletResponse.addCookie(cookie);
return true;
}
如Chrome瀏覽器控制檯中顯示,安全設置,而不是http
我已經嘗試添加參數下的servlet到web.xml 3.0規格說明,允許安全和HTTP - 只能設置會話cookie,但因爲我需要自己處理會話(Spring MVC應用程序需要保持無狀態),所以這對我不起作用。
更新:
我使用Tomcat7,目前從Servlet 2.5和Spring 3.2.8。
讓我試着加大了Servlet規範到3 – 2015-04-02 06:26:01
我沒有使用自旋微觀MVC框架,但是這適用於Java servlet。是'javax.servlet.http.Cookie'使用的'Cookie'嗎? – wolfram77 2015-04-02 06:26:11
這是正確的:javax.servlet.http.Cookie;從哪個servlet版本設置Http只支持? – 2015-04-02 06:33:48