두 손끝의 창조자

동시 사용자 제한 본문

Spring

동시 사용자 제한

codinglog 2020. 4. 28. 16:57

단일 사용자만 애플리케이션에 로그인 할 수 있는 제약사항을 두려면 xml.xml에 리스너를 추가하고

<listener>
<listener-class>
    org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>

스프링 시큐리티 설정에 최대 세션수를 지정합니다.

<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>

error-if-maximum-exceeded 속성을 지정합니다.

"rejected"은 form-login을 사용하는 경우 사용자가 authentication-failure-url 로 지정한 인증 실패 URL로 리다이렉션 됩니다.
"remember-me"와 같은 다른 비 대화식 메커니즘을 통해 두 번째 인증이 수행되면 "unauthorized"(401) 오류가 클라이언트로 전송됩니다. 대신 오류 페이지를 사용하려면 session-authentication-error-url 속성을 session-management 요소에 추가 할 수 있습니다. form-login에 사용자 정의 인증 필터를 사용하는 경우 동시 세션 제어 지원을 명시적으로 구성해야합니다.

반응형
Comments