package cn.jcenterhome.util;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CookieHelper {
public static Map<String, String> getCookies(HttpServletRequest request) {
Map<String, String> sCookie = new HashMap<String, String>();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
Map<String, String> jchConfig = JavaCenterHome.jchConfig;
String cookiePre = jchConfig.get("cookiePre");
int prelength = Common.strlen(cookiePre);
for (Cookie cookie : cookies) {
String name = cookie.getName();
if (name.startsWith(cookiePre)) {
sCookie.put(name.substring(prelength), Common.urlDecode(Common.addSlashes(cookie
.getValue())));
}
}
}
return sCookie;
}
public static void removeCookie(HttpServletRequest request, HttpServletResponse response, String key) {
setCookie(request, response, key, "", 0);
}
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String key,
String value) {
setCookie(request, response, key, value, -1);
}
@SuppressWarnings("unchecked")
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String key,
String value, int maxAge) {
Map<String, String> jchConfig = JavaCenterHome.jchConfig;
Cookie cookie = new Cookie(jchConfig.get("cookiePre") + key, Common.urlEncode(value));
cookie.setMaxAge(maxAge);
cookie.setPath(jchConfig.get("cookiePath"));
if (!Common.empty(jchConfig.get("cookieDomain"))) {
cookie.setDomain(jchConfig.get("cookieDomain"));
}
cookie.setSecure(request.getServerPort() == 443 ? true : false);
response.addCookie(cookie);
}
@SuppressWarnings("unchecked")
public static void clearCookie(HttpServletRequest request, HttpServletResponse response) {
removeCookie(request, response, "auth");
Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal");
sGlobal.put("supe_uid", 0);
sGlobal.put("supe_username", "");
sGlobal.remove("member");
}
}