BE/Spring [Spring] interceptor 를 이용하여 자동 로그인 구현 저녕호 2024. 5. 14. 10:39 interceptor 를 이용하여 자동 로그인 구현 로그인 창에 자동 로그인 체크박스 생성 체크박스 클릭 후 로그인 시 : on, 체크박스 클릭하지 않고 로그인 시 : null ( required = false 처리를 해줘야 함 ) 처리 후 체크된 상태로 로그인 성공 시 cookie 값을 발급하고 유저의 id 정보를 쿠키 값으로 저장시킨다 alter table membership add session_id varchar2(100) default 'nan' not null; 테이블 추가 ( 값이 존재하지 않는다면 nan 으로 저장된다 ) 테이블 추가 완료 DB 에 추가된 컬럼을 관리할 sessionId 변수와 getter / setter 를 DTO 에 추가 >> 이후 Mapper.xml 에도 session_id 컬럼과 sessionId 변수를 mapping 시켜준다 사용자의 쿠키 값과 DB 에 저장된 값이 일치해야 자동 로그인을 처리할 것임 Service 인터페이스에 메소드 추가 >> ServiceImpl 에서는 id 값과 autoLogin 값을 HashMap 에 키와 값으로 저장하여 mapper 에 전달 Mapper 인터페이스에 메소드 추상화, Mapper.xml 에 해당 메소드에 매핑될 sql 문 작성 자동 로그인 체크 후 로그인 성공 시 DB 에 저장되는 것 확인 AutoLogin Interceptor 에서 loginCookie 값이 있는지 확인 후 해당 값이 있으면 DB 안에 설정되어 있는 session_id 의 값이 "on" 인지 체크한 뒤 session 의 LOGIN 키의 값을 id 로 생성해준다 >> servlet-context.xml 에 index 경로로 들어오기 전 실행될 AutoLogin 클래스 Interceptor 선언 servlet-context.xml 파일에서 모든 경로에서 autoLogin 으로 설정한 Interceptor 가 작동하게 설정 Controller 에서 logout 경로로 들어올 시 cookie 값을 만료시키고 DB 안에 on 으로 저장되어 있던 session_id 컬럼의 값을 nan 으로 변경시킨뒤 세션을 모두 삭제하고 login 페이지로 돌려보낸다 728x90 728x90 공유하기 게시글 관리 구독하기저녕호의 개발세상 'BE > Spring' 카테고리의 다른 글 [Spring] 파일 업로드, 다운로드 (0) 2024.05.14 [Spring] XSS 공격 대응 ( 크로스 사이트 스크립팅 ) (0) 2024.05.14 [Spring] Interceptor (0) 2024.05.13 [Spring] 비밀번호 암호화, 다음 주소 API 사용 (0) 2024.05.13 [Spring] 디자인 패턴 ( 싱글톤 패턴, 팩토리 메소드 패턴, 프록시 패턴 ) (0) 2024.05.13 'BE/Spring' Related Articles [Spring] 파일 업로드, 다운로드 [Spring] XSS 공격 대응 ( 크로스 사이트 스크립팅 ) [Spring] Interceptor [Spring] 비밀번호 암호화, 다음 주소 API 사용