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 백엔드 개발자 되기(자바 편)