동시 세션 제어, 세션 고정 보호, 세션 정책
동시 세션 제어
동시 접속을 막기 위해
사용자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.)