세션 정책 ( 동시세션 제어, 세션고정보호)

📝 동시세션 제어

  • 동일한 계정으로 들어왓을 때 동시 세션 제어
http.sessionManagement() // 세션 관리 기능 작동 
        .maximumSession(1) // 최대 허용 가능 세션 수, -1: 무제한 로그인 세션 허용 
        .maxSessionPreventsLogin(true) // 동시로그인 차단, false: 기존 세션 만료(default) 
        .invalidSessionUrl("/invalid) // 세션이 유효하지 않을 때 이동 할 페이지 
        .expiredUrl("/expired") //세션 만료된 경우 이동 할 페이지 
        .sessionFixation().changeSessionId() // 인증 성공 시 세션은 그대로두고 세션아이디를 변경한다

📝 세션고정보호

    • 인증에 성공할 때마다 새로운 세션을 발급하는 것
http.sessionManagement() 
   .sessionFixation().changeSessionId() // 기본값 
        // none, migrateSession, newSession

 

📝 세션정책

http.sessionManagement()
  .sessionCreationPolicy(SessionCreationPolicy.If_Required)

- SessionCreationPolicy.Always : 스프링 시큐리티가 항상 세션 생성
- SessionCreationPolicy.If_Required : 스프링 시큐리티가 필요 시 생성(기본값)
- SessionCreationPolicy.Never : 스프링 시큐리티가 생성하지 않지만 이미 존재하면 사용
- SessionCreationPolicy.Stateless : 스프링 시큐리티가 생성하지 않고 존재해도 사용하지 않음
  • JWT방식 사용할때 Stateless 설정해줘야 한다.

댓글

Designed by JB FACTORY