Spring Boot - Cookie 사용하기
목차 Spring Boot - HttpSession 사용하기 Spring Boot - 직접 Session Storage 구현하기 Spring Boot - Cookie 사용하기 쿠키 생성스프링에서 쿠키는 Cookie 를 이용해 쉽게 생성할 수 있습니다. 생성한 쿠키를 Client 로 전달하기 위해 컨트롤러 메소드 파라미터로 HttpServletResponse 객체를 추가한 후 HttpServletResponse 객체에 생성한 쿠키를 넣어줍니다. @GetMapping("/cookie/create")public ResponseEntity<String> helloCookie(HttpServletResponse httpServletResponse) { Cookie cookie = new Cookie("helloCookie", URLEncoder.encode("Hello world", StandardCharsets.UTF_8)); httpServletResponse.addCookie(cookie); return ResponseEntity.ok().body("Create Cookie");} 쿠키 생성 테스트@Testvoid CookieTest() throws Exception { ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.get("/cookie/create")) .andExpect(status().isOk()) .andExpect(cookie().exists("helloCookie")) .andExpect(cookie().value("helloCookie", "Hello+world")) .andDo(print());} TestRestTemplate 을 이용해 어플리케이션에 대한 컨트롤러 테스트를 진행합니다. Client 로 전달된 쿠키는 Response Header 에서 확인할 수 있습니다. @LocalServerPortprivate int port;@Autowiredprivate TestRestTemplate restTemplate;@Testvoid helloCookie() { String url = "http://localhost:" + port + "/cookie/create"; // 테스트할 엔드포인트 URL // REST API 호출 ResponseEntity<String> response = restTemplate.getForEntity(url, String.class); // 응답 헤더에서 쿠키 정보 가져오기 HttpHeaders headers = response.getHeaders(); List<String> cookies = headers.get(HttpHeaders.SET_COOKIE); assertThat(response.getBody()).isEqualTo("Create Cookie"); assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); for (String cookie : cookies) { System.out.println("cookie = " + cookie); assertThat(cookie.contains("helloCookie")).isTrue(); }}