Spring/Spring Security
[Spring Security] 동시 로그인 제한하기(동시 세션 제어)
빅콜팝
2022. 10. 28. 23:18
728x90
반응형
❄️ 설정한 최대 허용 가능 세션을 초과했을 경우
1️⃣ 이전 사용자 세션 만료 처리 (첫 번째 사용자)
: maxSessionsPreventsLogin(false)
2️⃣ 현재 사용자 인증 실패 처리
: maxSessionsPreventsLogin(true)
해당 기능을 구현하기 위해서는 스프링 시큐리티가 적용되어 있어야 한다.
[Spring Security] Spring Security 설정하기
import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.ann..
zhfvkq.tistory.com
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
반응형