회원이 로그인 했을 때 아래의 3가지 기능이 처리되어야 한다.
- 알람 목록(addToNotifyList)
- 마지막 방문일 업데이트(modifyLastDate)
- 방문 횟수 업데이트(modifyVisit)
그런데 addToNotifyList와 modifyLastDate가 userDetailsService 구현체인 CustomMemberDetailsService의 loadUserByUsername 메서드 안에서 호출되고 있었다. 즉 DB에서 회원 ID가 조회되면 바로 알람목록과 방문일이 업데이트 되는 것이다.
그런데 알람목록과 방문일의 업데이트 기준은 '로그인 성공' 즉, 인증이 완료된 이후여야 하는 것이 맞지 않나? 라는 생각이 들어서 두 메서드를 SecurityConfig내 successHandler로 이동시켰다. successHandler가 인증이 성공했을 경우 작동하는 부분이라서 여기로 옮기는 것이 적절하다고 판단하였다.
(AuthenticationProvider에서 인증 성공 여부 결정 후 바로 호출할까도 잠시 고민하였으나, AuthenticationProvider에서는 인증 성공 여부만 결정해야 한다고 판단하여 successHandler로 선택함)
그리고 DB에는 방문 횟수 colum이 있는데 이를 관리하는 메서드는 없길래 생성해서 앞의 두 메서드와 마찬가지로 successHandler에 추가하였다.
'프로젝트 > 2' 카테고리의 다른 글
[Security] 로그인 시 이전 페이지 띄우기 (1) | 2022.07.31 |
---|---|
파일 (0) | 2022.06.25 |
댓글 (2) | 2022.06.16 |
Docker에 tomcat 올리기 (0) | 2022.06.08 |