만약 한명의 유저가 여러번 로그인하는 것을 막고 싶다면 아래와 같이 설정한다.
먼저 web.xml 에 listener를 등록한다.
<listener> <listener-class> org.springframework.security.web.session.HttpSessionEventPublisher </listener-class> </listener>
다음으로 Application Context에 아래 태그를 추가한다.
<http> ... <session-management> <concurrency-control max-sessions="1" /> </session-management> </http>
이렇게 하면 두번째 로그인 시 먼저 로그인한 것은 무효화된다.
만약 나중에 로그인 한 것을 막고 싶다면 아래와 같이 설정한다.
<http> ... <session-management> <concurrency-control max-sessions="1" error-if-maximum-exceeded="true" /> </session-management> </http>
이러한 설정으로 인해 거부된 사용자는 form-based login방식이 쓰여지고 있다면 authentication-failure-url 로 보내지게 되는데, 그렇지 않다면 402에러와 같은 내용이 사용자에게 전달된다. 만약 에러페이지를 설정하고 싶다면, session-management 요소에 session-authentication-error-url 속성을 추가하면 된다.
댓글 없음:
댓글 쓰기