egovframework EgovHttpSessionBindingListener 클래스와 EgovMultiLoginPreventor 클래스 사용
위 링크의 전자정부표준프레임워크에서 다운로드 할 수 있다.
패키지는 압축파일 경로 그대로 egovframework.com.utl.slm 을 생성하여 하위 항목에 넣어주었다.
login을 처리하는 컨트롤러 안에
EgovHttpSessionBindingListener listener = new EgovHttpSessionBindingListener();
request.getSession().setAttribute(loginVO.getUserId(), listener);
위의 코드 두줄을 추가하였고
logout을 처리하는 컨트롤러 안에
request.getSession().invalidate();
코드를 추가하였다.
실행 시,
두번째 같은 로그인을 했을 경우
기존에 있던 첫번째 로그인은 새로고침 했을 시 로그인 화면으로 튕겨나가도록 처리된다.
처리 로직을 살펴보면...
로그인 할 때마다 해당 아이디에 해당하는 세션이 있는지 findByLoginId 에서 확인 한 후 이미 있으면 invalidateByLoginId 클래스에서 이미 존재하는 세션을 무효화 시키는 순서였다.