Todo 프로젝트에서 구현했던 로그인 부분을 그대로 가져와 NewsFeed 프로젝트에 반영했다.
로그인 후 정상적으로 Jwt 토큰을 발급하는 것까지 확인이 되었는데 Jwt 토큰으로 다른 인증이 필요한 작업들을 하기 위해 사용자 정보를 가져올 때 사용자 정보가 null로 출력되었다.
https://jwt.io/를 통해 access token의 정보도 발급한 정보 그대로 확인할 수 있었다.
디버그 모드로 확인하면 UsernamePasswordAuthenticationToken의 반환 값까지는 정상적으로 확인되는데 SecurityContextHolder.getContext().authentication에 값을 넣으면 null이 됐다.
디버그 모드로 내부까지 차근차근 살펴봤지만 뭐가 문제인지 알 수 없었다.
이전 프로젝트와 비교해도 다른 부분이 없는데 계속 사용자 정보는 null로 출력되다가 어느 순간 다시 정상적으로 사용자의 정보가 출력되고 있었다.
그 후로 여러 번 다시 사용자 정보를 정상적으로 받아오는지 테스트를 했는데 정상 동작되었다.
문제의 원인도 알지 못하고 해결돼서 조금 찜찜하지만 일단 내일 다시 테스트를 하면서 지켜봐야겠다.
+ 2024.05.29 06:10 : Controller에 @AuthenticationPrincipal 어노테이션의 값을 확인하려고 같이 붙였었는데 이 부분에서 NullPointException이 발생하면서 생긴 문제였음
'TIL(Today I Learned)' 카테고리의 다른 글
TIL - RedisPassword (0) | 2024.05.30 |
---|---|
TIL - React, Spring Boot로 카카오 소셜 로그인 구현 STEP 1 (0) | 2024.05.29 |
TIL - Swagger ui에서 Json 데이터와 첨부 파일 업로드 시도 (0) | 2024.05.27 |
ESLint - missing in props validation (0) | 2024.05.24 |
TIL - Redis에 대해 알아보기(+ 명령어) (2) | 2024.05.23 |