package com.sohu.cache.web.service.impl; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.math.NumberUtils; import com.sohu.cache.util.ConstUtils; import com.sohu.cache.web.service.UserLoginStatusService; /** * cookie保护登录状态 * @author leifu * @Date 2016年6月15日 * @Time 下午1:31:17 */ public class UserLoginStatusCookieServiceImpl implements UserLoginStatusService { @Override public long getUserIdFromLoginStatus(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); String cookiesId = null; if (cookies != null) { for (Cookie cookie : cookies) { if (LOGIN_USER_STATUS_NAME.equals(cookie.getName())) { cookiesId = cookie.getValue(); } } } return NumberUtils.toLong(cookiesId, -1); } @Override public void addLoginStatus(HttpServletRequest request, HttpServletResponse response, String userId) { Cookie cookie = new Cookie(LOGIN_USER_STATUS_NAME, userId); cookie.setDomain(ConstUtils.COOKIE_DOMAIN); cookie.setPath("/"); cookie.setMaxAge(-1); response.addCookie(cookie); } @Override public void removeLoginStatus(HttpServletRequest request, HttpServletResponse response) { addLoginStatus(request, response, ""); } }