프로젝트/2

인증 성공 시 메서드 호출 위치 변경

da77777 2022. 6. 27. 22:50

회원이 로그인 했을 때 아래의 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