📝 동시세션 제어
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 설정해줘야 한다.