중복로그인 방지 처리 방법에 대하여
- 작성자 :
- 김*수
- 작성일 :
- 2014-09-29 17:27:36
- 조회수 :
- 1,097
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고하십니다.
중복로그인을 방지하기 위한 처리 방법이 있는지 알고 싶습니다.
특히, 사용자가 정상적으로 로그아웃하지 않고 브라우저를 종료하거나 또는 컴퓨터를 재부팅하였을 경우도 처리가 가능한지 알고 싶습니다.
가능하다면 처리 방법을 알려주시면 감사하겠습니다.
중복로그인을 방지하기 위한 처리 방법이 있는지 알고 싶습니다.
특히, 사용자가 정상적으로 로그아웃하지 않고 브라우저를 종료하거나 또는 컴퓨터를 재부팅하였을 경우도 처리가 가능한지 알고 싶습니다.
가능하다면 처리 방법을 알려주시면 감사하겠습니다.
A
안녕하세요. 김기수님.
Spring Security를 적용하신 경우 다음과 같이 concurrent-session-control (기존 http element 하위 element)를 통해 중복 로그인 통제가 가능합니다.
ex:
<http access-denied-page="/sec/ram/accessDenied.do" path-type="regex" lowercase-comparisons="false">
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/uat/uia/egovLoginUsr.do?login_error=1"
default-target-url="/uat/uia/actionMain.do"
login-page="/index.jsp?flag=L" />
<anonymous/>
<logout logout-url="/j_spring_security_logout" logout-success-url="/index.jsp" />
<concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false" expired-url="/index.jsp" />
</http>
다만, 말씀하신 것 처럼 정상적인 로그아웃이 아닌 브라우저 종료 등의 경우에 대해서는 서버 상에 어떤 이벤트도 전달되지 않기 때문에 처리가 어렵습니다. (타임아웃 시간까지 로그인된 상태로 파악)
참조로 위 설정을 사용하시려면 web.xml 상에 다음과 같은 listener 등록이 필요합니다.
<listener>
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
그럼, 즐거운 하루되십시오.
감사합니다.
Spring Security를 적용하신 경우 다음과 같이 concurrent-session-control (기존 http element 하위 element)를 통해 중복 로그인 통제가 가능합니다.
ex:
<http access-denied-page="/sec/ram/accessDenied.do" path-type="regex" lowercase-comparisons="false">
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/uat/uia/egovLoginUsr.do?login_error=1"
default-target-url="/uat/uia/actionMain.do"
login-page="/index.jsp?flag=L" />
<anonymous/>
<logout logout-url="/j_spring_security_logout" logout-success-url="/index.jsp" />
<concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false" expired-url="/index.jsp" />
</http>
다만, 말씀하신 것 처럼 정상적인 로그아웃이 아닌 브라우저 종료 등의 경우에 대해서는 서버 상에 어떤 이벤트도 전달되지 않기 때문에 처리가 어렵습니다. (타임아웃 시간까지 로그인된 상태로 파악)
참조로 위 설정을 사용하시려면 web.xml 상에 다음과 같은 listener 등록이 필요합니다.
<listener>
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
그럼, 즐거운 하루되십시오.
감사합니다.