Java&Spring

Java - 쿠키(Cookie)

hjkang 2023. 10. 1. 13:48

쿠키 추가

  • 요청값(이름, 값, 만료 기간)을 바탕으로 HTTP 응답에 쿠키 추가
public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
	Cookie cookie = new Cookie(name, value);
	cookie.setPath("/");
	cookie.setMaxAge(maxAge);
	response.addCookie(cookie);
}

 

 

쿠키 삭제

  • 쿠키 이름을 입력받아 쿠키 삭제
  • 실제로 삭제하는 것은 아니고, 파라미터로 넘어온 키의 쿠키를 빈 값으로 바꾼 뒤 만료 시간을 0으로 설정하여 쿠키가 재성성 되자마자 만료 처리하게 함
public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, String name) {
    Cookie[] cookies = request.getCookies();
	if (cookies == null) {
		return;
	}

	for (Cookie cookie : cookies) {
		if (name.equals(cookie.getName())) {
			cookie.setValue("");
			cookie.setPath("/");
			cookie.setMaxAge(0);
			response.addCookie(cookie);
		}
	}
}

 

 

쿠키 직렬화

  • 객체를 직렬화하여 쿠키의 값으로 변환
public static String serialize(Object obj) {
	return Base64.getUrlEncoder()
		.encodeToString(SerializationUtils.serialize(obj));
}

 

 

쿠키 역직렬화

  • 쿠키를 역직렬화하여 객체로 변환
public static <T> T deserialize(Cookie cookie, Class<T> cls) {
	return cls.cast(
		SerializationUtils.deserialize(
			Base64.getUrlDecoder().decode(cookie.getValue())
		)
	);
}

 

 

 


참고

- 스프링 부트3 백엔드 개발자 되기(자바 편)