Spring
JWT인증 설정 시 SpringBootTest
Seung__Yong
2023. 5. 6. 02:20
- JWT인증이 설정되어 있다면 원래대로라면 로그인을 통해 인증한 후 accessToken값을 매 요청마다 설정해주어야 합니다.
- 이렇게 되면 컨트롤러 테스트에서 MockMvc를 이용해 요청을 날릴 때 마다 로그인을 먼저 한 다음 accessToken값을 얻어와서 다시 요청을 해야합니다.
- 일단 결론적으로 이 과정을 WithUserDetails를 통해 생략할 수 있음을 확인했습니다.
@WithUserDetails("user1")
// "user1" 값은 등록된 Bean 중 UserDetailsService를 찾아 loadUserByUsername의 파라미터 값으로 바인딩된다.
- WithUserDetails를 사용하면 로그인 과정이 진행되고 결과적으로 SecurityContext에 Authentication이 설정되게 됩니다.
-> 디버깅을 찍어보니 SecurityContextHolderFilter보다 먼저 동작함을 확인할 수 있었습니다.
-> Jwt인증을 거치기도 전에 SecurityContext에 인증객체가 들어있기 때문에 accssToken은 보낼 필요가 없습니다.