동시 세션 제어, 세션 고정 보호, 세션 정책
동시 세션 제어
동시 접속을 막기 위해
사용자1이 로그인함 -> 세션 생성
사용자2가 로그인함 -> 세션이 생성되면서 이전 세션 만료 설정
사용자1이 링크 접속함 -> 세션 만료 설정이 되어서 만료시킴.
가 왼쪽 그림
사용자1이 로그인함 -> 세션 생성
사용자2가 로그인함 -> 동일한 계정으로 이미 세션이 생성되어있음. -> 인증 실패
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.maximumSessions(1) // 최대 허용 가능 세션 수 , -1 : 무제한 로그인 세션 허용
.maxSessionsPreventsLogin(true) // 동시 로그인 차단함, false : 기존 세션 만료(default)
.invalidSessionUrl("/invalid") // 세션이 유효하지 않을 때 이동 할 페이지
.expiredUrl("/expired ") // 세션이 만료된 경우 이동 할 페이지
}
세션 고정 보호
대충 세션을 통해서 사용자 쿠키값을 입력해 자동 로그인을 계속할 수 있음.
그러니, 인증할때마다 새로운 세션, 새로운 쿠키값으로 생성되어야함.
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.sessionFixation().changeSessionId() // 기본값
// none, migrateSession, newSession
}
세션 정책
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy. If_Required )
}
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy. If_Required )
}
SessionCreationPolicy.Always
: 스프링 시큐리티가 항상 세션 생성
SessionCreationPolicy.If_Required
: 스프링 시큐리티가 필요 시 생성(기본값)
SessionCreationPolicy.Never
: 스프링 시큐리티가 생성하지 않지만 이미 존재하면 사용
SessionCreationPolicy.Stateless
: 스프링 시큐리티가 생성하지 않고 존재해도 사용하지 않음
세션 제어 필터는 그냥 보고 넘어감
Author And Source
이 문제에 관하여(동시 세션 제어, 세션 고정 보호, 세션 정책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seungju0000/동시-세션-제어-세션-고정-보호-세션-정책저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)