개발/Spring

SPRING-Security SessionManagement(세션 관리 기능)

Ridiss 2023. 1. 23. 07:56

세션관리 

 - 인증 시 사용자의 세션정보를 등록, 조회, 삭제 등의 세션 이력을 관리

 

동시적 세션 제어

 - 동일 계정으로 접속이 허용되는 최대 세션수를 제한

 

세션 고정 보호

 - 인증 할 때마다 세션쿠키를 새로 발급하여 공격자의 퀴 조작을 방지

 

세션 생성 정책

 - SessionCreationPolicy.Always //스프링 시큐리티가 항상 세션 생성

 - SessionCreationPolicy.If_Required //스프링 시큐리티가 필요 시 생성(기본값)

 - SessionCreationPolicy.Never //스프링 시큐리티가 생성하지 않지만 이미 존재하면 사용

 - SessionCreationPolicy.Statelses //스프링 시큐리티가 생성하지 않고 존재해도 사용하지 않음 (JWT사용시 체크)

Kotlin

http.sessionManagement {
    it.sessionCreationPolicy(SessionCreationPolicy.STATELESS) // 세션 생성 정책
    it.maximumSessions(1) // 최대 허용 가능 세션 수, -1:무제한 로그인 세션 허용
    it.maxSessionsPreventsLogin(ture) //동시 로그인 차단함, false : 기존 세션 만료(default)
    it.invalidSessionUrl("/invalid") //세션이 유효하지 않을 때 이동 할 페이지
    it.expiredUrl("/expired") //세션이 만료된 경우 이동 할 페이지
    it.sessionFixation().changeSessionId() //세션은 그대로 두고 세션ID만 변경됨, 기본값==change, none(쓰면안됨), migrateSession, newSession
}

 

 

'개발 > Spring' 카테고리의 다른 글

Webclient 한글깨짐 문제 해결  (0) 2023.03.10
Spring Security 6 변경점  (0) 2023.01.25
Spring-IOC  (0) 2022.03.01
@Component, @Configuration 차이  (0) 2021.08.04
[JPA] Page, nativeQuery사용  (0) 2021.07.13