본문 바로가기
Java Web/Spring Boot

[Spring Boot] 세션 (Session)

by 스응 2023. 4. 13.
728x90
728x90

#  관련 포스팅

  - 세션 개념 : https://young0105.tistory.com/160

  - JSP 세션 사용법 : https://young0105.tistory.com/163

 


세션 (Session)

  - 내장형 서버의 메모리 기반 세션을 사용함

      → 세션 데이터가 서버의 메모리에 저장됨

      → 서버를 재시작하면 세션 데이터가 모두 삭제됨

      → 방안 : 세션 클러스터링, 분산 캐시

                      (세션 데이터를 외부 저장소에 저장함)

  

#  Controller에서 session 객체 가져오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Controller
@RequestMapping("/account")
public class AccountController {
 
    @Autowired
    private HttpSession session;
    
    @GetMapping("/list")
    public String list(Model model) {
 
        // 인증 검사
        User principal = (User) session.getAttribute(Define.PRINCIPAL);
        
        if (principal == null) {
            throw new UnAuthorizedException("인증된 사용자가 아닙니다.", HttpStatus.UNAUTHORIZED); // 인증되지 않음 (401)
        }
        
        ...
    }
cs

 

 


세션 관련 설정

  - application.properties 또는 application.yml 파일에서 설정

 

#  세션 타임아웃 설정 (기본값 : 30분)

  - 세션 유효시간

  - 페이지를 이동할 때마다 시간이 초기화됨

  - server.servlet.session.timeout=시간

 

#  세션 쿠키 이름 설정 (기본값 : JSESSIONID)

  - server.servlet.session.cookie.name=이름

 

#  세션 쿠키 경로 설정 (기본값 : /)

  - server.servlet.session.cookie.path=경로

 

320x100
반응형

댓글