All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zhangxiao.paladin2.common.util.CookieUtils Maven / Gradle / Ivy

package org.zhangxiao.paladin2.common.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.StringUtils;
import org.springframework.web.util.WebUtils;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Optional;

/**
 * Cookie工具类
 */
public class CookieUtils {


    private static final Log LOG = LogFactory.getLog(CookieUtils.class);

    private static final Integer COOKIE_MAX_AGE = 3600;

    private static final Boolean COOKIE_SECURE = false;//只有https的前提,浏览器才会保存cookie

    private static final Boolean COOKIE_HTTP_ONLY = true;

    public static void saveCookie(HttpServletResponse response, String fieldName, String fieldValue) {
        saveCookie(response, fieldName, fieldValue, COOKIE_MAX_AGE);
    }

    public static void saveCookie(HttpServletResponse response, String fieldName, String fieldValue, int maxAge) {
        if (StringUtils.hasText(fieldName)) {
            Cookie cookie = new Cookie(fieldName, fieldValue);
            cookie.setSecure(COOKIE_SECURE);
            cookie.setHttpOnly(COOKIE_HTTP_ONLY);
            cookie.setPath("/");
            cookie.setMaxAge(maxAge);
            response.addCookie(cookie);
        }
    }

    public static void removeCookie(HttpServletResponse response, String fieldName) {
        if (StringUtils.hasText(fieldName)) {
            Cookie cookie = new Cookie(fieldName, "");
            cookie.setSecure(COOKIE_SECURE);
            cookie.setHttpOnly(COOKIE_HTTP_ONLY);
            cookie.setPath("/");
            cookie.setMaxAge(0);
            response.addCookie(cookie);
        }
    }

    public static Optional getCookie(HttpServletRequest request, String fieldName) {
        return Optional.ofNullable(WebUtils.getCookie(request, fieldName));
    }

    public static String getCookieValue(HttpServletRequest request, String cookieName) {
        Optional cookie = getCookie(request, cookieName);
        if (cookie.isPresent()) {
            return cookie.get().getValue();
        }
        return "";
    }

    public static void cleanUp(HttpServletRequest request, HttpServletResponse response) {
        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
            removeCookie(response, cookie.getName());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy