인증/인가 필터단을 설계하면서 UserDetails를 구현한 UserDetailsImpl을 커스텀해서 사용했다. 이 UserDetailsImpl에 내가 사용하는 Entity인 User와 매칭 시키기 위해 UserRepository의 값을 꺼내와서 UserDetailsImpl에 넣어줘야 한다.
따라서 UserDetailsService 클래스를 사용해야 한다. 근데 여기서 문제가 생겼다. 스프링에서는 UserDetailsService는 이미 존재하는 클래스인 것. 따라서 주의 없이 UserDetailsService 클래스를 필드값으로 갖는 클래스를 사용할 때 잘못된 클래스를 가져올 수 있다. (내가 그랬고, 우리 팀원이 그랬다.)
[해결방법]
UserDetailsImpl의 로직을 사용하는 클래스의 이름을 UserDetailsService -> UserDetailsImplService로 변경해서 사용했다. 따라서 위의 문제는 재발하지 않는다.
'공부 > 트러블슈팅' 카테고리의 다른 글
아키텍쳐 고민 (0) | 2024.02.06 |
---|---|
TestSuiteExecutionException 오류(수정) (0) | 2024.01.06 |
빈 생성 오류 트러블 슈팅 (1) | 2023.11.22 |
[Spring] Could not write JSON: Infinite recursion (StackOverflowError) (0) | 2023.11.16 |
[Spring] DB 연결 실패 (0) | 2023.11.14 |