Closed j00r6 closed 7 months ago
기존에 내가 이해한 개념에서는 UserDetails
의 구현체인 CustomUserDetails
를 구현하면 자동으로 UserDetails.User
의 정보와 CustomUserDetails
의 정보가 매핑되는걸로 인지하고있었으나 일련의 과정은 인증절차를 진행할때의 과정
이미 Security의 인증절차를 통과하여 DB에 저장된 데이터이기 때문에
해당 DB에서 가져온 정보는 UserDetails.User
와 CustomUserDetails
를 각각 다른 객체로 인식함
때문에 인증절차가 지난 후에 DB로부터 정보를 조회해서
위와 같은 방식으로 CustomUserDetails
를 활용하여 Token에 유저 정보를 추가하려면
CustomUserDetailsService.class
에서 repository 로부터 조회한 값과 토큰에서 활용하는 값의 타입을 맞춰줄 필요가 있음
이슈넘버 #21 과 연결되는 내용입니다.
수정사항
오류 수정 내역
내용
로그인시 토큰발급에는 문제가 없었으나 토큰 발급시 memberId, nickName 을 토큰에 첨부하고 나서 부터
ClassCastException
이 발생하여 토큰발급에 문제가 생김해결
기존
11ac697f0dd7a7c1d78fea4d9c32911208fbf15b
CustomUserDetailsService.class
의 반환값이 User 타입으로 되어있었고TokenProvider.class
에서는CustomUserDetails
객체를 활용했기 때문에 타입이 맞지 않아 발생한ClassCastException
현재
dd02d1e18dc0acf56e8394dc133e9997af248cfb
CustomUserDetailsService.class
의 반환값 을CustomUserDetails
타입으로 변경TokenProvider.class
상에는 동일코드 사용