동시 세션 설정

1. 동시 세션 설정

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain fileterChain(HttpSecurity http) throws Exception {

        http
            .sessionManagement(form ->
                form
                    .maximumSessions(1) // 최대 허용 가능 세션 수 ( -1 : 무제한 로그인 세션 허용 )
                    .maxSessionsPreventsLogin(false) // 동시 로그인 차단
                    // true            : 현재 사용자 인증 실패 (이전 사용자는 계속 사용 가능)
                    // false (default) : 이전 사용자 세션 만료 (현재 사용자만 계속 사용 가능)
                    .invalidSessionUrl("invalid") // 세션이 유효하지 않을 때 이동할 페이지
                    .expiredUrl("/expired") // 세션이 만료된 경우 이동할 페이지 
                    // expiredUrl 과 invalidSessionUrl 을 같이 적을 경우 invalidSessionUrl 을 우선시 한다.
            );
        
        return http.build();
    }
}

2. 설정 후 출력결과

.maxSessionsPreventsLogin(false) 일 경우

.maxSessionsPreventsLogin(true) 일 경우

Comments