[spring]egov session방식 중복로그인 방지

최진하·2023년 2월 22일
0

egovframework EgovHttpSessionBindingListener 클래스와 EgovMultiLoginPreventor 클래스 사용

https://www.egovframe.go.kr/home/compinfo/compinfoRead.do?pagerOffset=0&searchKey=compnNm&searchValue=%EC%A4%91%EB%B3%B5&menuNo=91&compnId=COMP_0000006832

위 링크의 전자정부표준프레임워크에서 다운로드 할 수 있다.
패키지는 압축파일 경로 그대로 egovframework.com.utl.slm 을 생성하여 하위 항목에 넣어주었다.

login을 처리하는 컨트롤러 안에

EgovHttpSessionBindingListener listener = new EgovHttpSessionBindingListener();
request.getSession().setAttribute(loginVO.getUserId(), listener);

위의 코드 두줄을 추가하였고

logout을 처리하는 컨트롤러 안에

request.getSession().invalidate();

코드를 추가하였다.

실행 시,
두번째 같은 로그인을 했을 경우
기존에 있던 첫번째 로그인은 새로고침 했을 시 로그인 화면으로 튕겨나가도록 처리된다.

처리 로직을 살펴보면...
로그인 할 때마다 해당 아이디에 해당하는 세션이 있는지 findByLoginId 에서 확인 한 후 이미 있으면 invalidateByLoginId 클래스에서 이미 존재하는 세션을 무효화 시키는 순서였다.

profile
소소한 정리

0개의 댓글