TIL(Today I Learned)

TIL - 로그인 후 Jwt 토큰으로 회원 정보를 가져올 때 NULL

Happy._. 2024. 5. 28. 23:57

Todo 프로젝트에서 구현했던 로그인 부분을 그대로 가져와 NewsFeed 프로젝트에 반영했다.

로그인 후 정상적으로 Jwt 토큰을 발급하는 것까지 확인이 되었는데 Jwt 토큰으로 다른 인증이 필요한 작업들을 하기 위해 사용자 정보를 가져올 때 사용자 정보가 null로 출력되었다.

 

https://jwt.io/를 통해 access token의 정보도 발급한 정보 그대로 확인할 수 있었다.

 

디버그 모드로 확인하면 UsernamePasswordAuthenticationToken의 반환 값까지는 정상적으로 확인되는데 SecurityContextHolder.getContext().authentication에 값을 넣으면 null이 됐다.

 

디버그 모드로 내부까지 차근차근 살펴봤지만 뭐가 문제인지 알 수 없었다.

이전 프로젝트와 비교해도 다른 부분이 없는데 계속 사용자 정보는 null로 출력되다가 어느 순간 다시 정상적으로 사용자의 정보가 출력되고 있었다.

그 후로 여러 번 다시 사용자 정보를 정상적으로 받아오는지 테스트를 했는데 정상 동작되었다.

문제의 원인도 알지 못하고 해결돼서 조금 찜찜하지만 일단 내일 다시 테스트를 하면서 지켜봐야겠다.

 

+ 2024.05.29 06:10 : Controller에 @AuthenticationPrincipal 어노테이션의 값을 확인하려고 같이 붙였었는데 이 부분에서 NullPointException이 발생하면서 생긴 문제였음