개요
공식 문서는 ResponseCookie를 다음과 같이 소개하고 있습니다.
An HttpCookie subclass with the additional attributes allowed in the "Set-Cookie" response header. To build an instance use the from(java.lang.String) static method.
ResponseCookie는 Spring 5에 소개된 클래스로서, 쿠키를 생성하고 설정하는데 빌더 패턴을 사용합니다. 이를 통해 조금 더 직관적인 프로그래밍이 가능합니다.
이번 포스팅에서는 간단한 예제 코드를 통해 ResponseCookie의 사용법을 알아보겠습니다.
1. 기존과 차이점
기존의 쿠키는 Cookie 객체를 만들고 Setter를 통해 쿠키의 값들을 설정해주었습니다.
@RequestMapping("/set-cookie")
public ResponseEntity<String> setCookie(HttpServletResponse response) {
// AccessToken in somewhere
Cookie cookie = new Cookie("SESSION", accessToken);
cookie.setMaxAge(24 * 60 * 60);
cookie.setHttpOnly(true);
cookie.setSecure(true);
cookie.setPath("/");
response.addCookie(cookie);
return ResponseEntity.ok("Cookie has been set!");
}
Java
복사
ResponseCookie는 빌더 패턴을 사용하여 조금 더 직관적인 프로그래밍이 가능합니다.
@RequestMapping("/set-cookie")
public ResponseEntity<String> setCookie() {
// AccessToken in somewhere
ResponseCookie cookie = ResponseCookie.from("userSession", accessToken)
.maxAge(Duration.ofDay(30)) // 30 days
.httpOnly(true)
.secure(true)
.sameSite("Strict") // 여러 설정을 추가할 수 있다.
.path("/")
.build();
return ResponseEntity.ok()
.header(HttpHeaders.SET_COOKIE, cookie.toString())
.body("Cookie has been set using ResponseCookie!");
}
Java
복사