[SpringBoot] 쿠키와 세션
2023. 3. 16. 20:21ㆍspring
쿠키
- 쿠키는 클라이언트가 값을 조작할 수 있다. 그래서 보안에 취약하다.
- 세션은 서버에서만 값을 줄 수 있으며 난수로 주어진다. 즉, 보안성이 좋다.
주로 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) 파라미터 : 세션에서 꺼낼 객체 {
//세션이름에 해당하는 객체 정보를 자동으로 세션에 넣어준다.
//세션이 이미 있으면 자동으로 파라미터에 담아준다.
}
'spring' 카테고리의 다른 글
[SpringBoot] 글 삭제했을 때 원래 페이지로 redirect 되게 하기 (0) | 2023.03.31 |
---|---|
[SpringBoot] 하나의 form을 재활용 하기 위한 방법 (ex_등록,수정을 하나의 form으로 <csrf>) (0) | 2023.03.31 |
[SpringBoot] @Builder.Default / 클래스 내에서 필드 초기화 / NullPointException (0) | 2023.03.21 |
[SpringBoot] 실행 전 데이터 세팅 방법, CommandLineRunner (0) | 2023.03.20 |
스프링 DB 테스트 (0) | 2023.02.01 |