728x90
반응형
❄️ 설정한 최대 허용 가능 세션을 초과했을 경우
1️⃣ 이전 사용자 세션 만료 처리 (첫 번째 사용자)
: maxSessionsPreventsLogin(false)
2️⃣ 현재 사용자 인증 실패 처리
: maxSessionsPreventsLogin(true)
해당 기능을 구현하기 위해서는 스프링 시큐리티가 적용되어 있어야 한다.
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@RequiredArgsConstructor
public class SecurityConfig {
...
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
...
http.sessionManagement() // 세션 관리 (동시 로그인 제한)
.maximumSessions(1) // 최대 허용 가능 세션 수 (-1 : 무제한)
.maxSessionsPreventsLogin(true) // true : 로그인 제한 false(default) : 기존 세션 만료
.expiredUrl("/login") // 세션 만료시 이동 페이지
;
return http.build();
}
...
}
728x90
반응형
'Spring > Spring Security' 카테고리의 다른 글
[Spring Secururity ERROR] 스프링 빈 순환 참조 에러 The dependencies of some of the beans i (1) | 2022.10.30 |
---|---|
[Spring Security] Spring Security 설정하기 (0) | 2022.10.29 |
[Spring Security] 유저별 권한 설정 (0) | 2022.10.28 |
[Spring Security] Remember Me 인증(로그인 상태 유지) (0) | 2022.10.27 |
[Spring Security] WebSecurityConfigurerAdapter Deprecated 해결 (0) | 2022.10.27 |