[SpringBoot] 쿠키와 세션

2023. 3. 16. 20:21spring

쿠키

- 쿠키는 클라이언트가 값을 조작할 수 있다. 그래서 보안에 취약하다.

- 세션은 서버에서만 값을 줄 수 있으며 난수로 주어진다. 즉, 보안성이 좋다.

 

주로 Controller에서 다루며  HttpServletRequest, HttpServletResponse에서 쿠키와 세션을 확인하거나 수정, 생성할 수 있다.

 

쿠키 사용

// 쿠키 생성
Cookie cookie = new Cookie(이름, 값);
response.addCookie(cookie);
// 쿠키 조회
Cookie[] cookies = request.getCookie();
// 쿠키 삭제
Coockie cookie = new Cookie("해당쿠키이름", null);
cookie.setMaxAge(0) //수명 0으로 만들기 _ 파라미터 : 유지시간 (단위:초)
response.addCookie(cookie)

 

- 스프링 부트 쿠키 사용

//스프링 부트를 사용한 쿠키 조회
// required 속성을 true로 지정하면 쿠키가 존재하지 않을 때 예외를 발생시킨다. 그래서 거의 false로 사용
// 쿠키 없으면 null 반환
// defaultValue로 쿠키가 없을 시 값 설정도 가능하다.

public String login(@CookieValue(name="쿠키이름", required = '쿠키필요(true/fasle), defaultValue="0") Cookie cookie){
	cookie !!!!!!!!!!!
}

세션

// 세션 획득
HttpSession session = request.getSession();
//name으로 매핑된 세션 가져오기(Object)
session.getAttribute(String name)
// name 으로 object 를 매핑한다.
session.setAttribute(String name, Object object)
//세션 삭제
session.invalidate()

 

- 스프링 부트 세션 사용

public String sessionUse(@SessionAttribute(name="세션이름", required=false) 파라미터 : 세션에서 꺼낼 객체 {
	//세션이름에 해당하는 객체 정보를 자동으로 세션에 넣어준다.
    //세션이 이미 있으면 자동으로 파라미터에 담아준다. 
  
}