본문 바로가기

dev/스프링

spring security sessionRegistry

스프링에서 중복 로그인을 방지하려면 sessionRegistry를 사용하면 됩니다.

 

기존의 사용자 세션은 유지하고 새로 시도하는 로그인은 막는 것으로 하겠습니다.

 

sessionRegistry 적용

 

sessionRegistry를 적용하려면 http 태그 안에 session-management 필터를 추가합니다.

 

그리고 중복 로그인을 막기 위해 concurrency-control 태그를 작성하고 각각의 속성을 다음과 같이 설정합니다.

 

max-sessions="1" (로그인한 사용자가 동시에 접속할 수 있는 세션의 수)

 

error-if-maximum-exceeded="true" (true, 중복 로그인이 발생했을 때 기존의 로그인한 사용자 세션은 유지하고 다음에 로그인 시도한 사람은 실패. 반대로 하려면 false)

 

expired-url="/login/login.do" (세션이 만료되었을 때 이동하는 url)

 

session-registry-ref="sessionRegistry" (중복 로그인을 관리하는 bean 참조, 61번째 라인에 등록된 bean)

 

이렇게 작성하고 테스트하면 기존 사용자 세션은 유지되고 그 이후의 로그인 시도는 실패하는 것을 확인할 수 있습니다.

 

스프링에서 지원하는 중복 로그인 말고 따로 하려면 사용자 세션을 관리하는 bean을 등록해서 사용하면 됩니다.

'dev > 스프링' 카테고리의 다른 글

SSO 로그인 연동  (0) 2023.01.10
spring profile 설정  (0) 2022.09.29
Spring SecurityContextHolder  (0) 2022.02.11
압축파일 다운로드  (0) 2022.02.08
TooManyResultsException 에러  (0) 2021.10.22