Servlet과 Spring의 Cookie 생성

✒️ 2025-05-16 11:26 내용 수정



import jakarta.servlet.http.Cookie; 
import jakarta.servlet.http.HttpServletResponse;

public void setCookie(HttpServletResponse response) {
	// cookie 생성
	Cookie cookie = new Cookie("testToken", "1234");
	cookie.setMaxAge(3600); // 1시간 
	cookie.setPath("/"); // cookie가 전송될 수 있는 경로
	cookie.setHttpOnly(true); // 클라이언트에서 Javascript 접근 차단
	cookie.setSecure(true); // https 설정

	// 응답에 쿠키 추가 
	response.addCookie(cookie);
}

import org.springframework.http.ResponseCookie;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;

public ResponseEntity<String> createCookieWithSpring() {
    ResponseCookie cookie = ResponseCookie.from("testToken", "1234")
            .httpOnly(true) // 클라이언트에서 Javascript 접근 차단
            .secure(true) // https 설정
            .path("/") // cookie가 전송될 수 있는 경로
            .maxAge(3600) // 1시간 
            .sameSite("Strict") // sameSite 적용
            .build();

	// HttpHeaders 생성
    HttpHeaders headers = new HttpHeaders();
    // header에 생성한 cookie 추가
    headers.add(HttpHeaders.SET_COOKIE, cookie.toString());

	// 응답용 ResponseEntity 추가
	// (body, header, status code)
    return new ResponseEntity<>("쿠키 설정 완료", headers, HttpStatus.OK);
}