@WebMvcTest 에서 OAuth2 @AuthenticationPrincipal 적용


@WebMvcTest 에서 OAuth2 @AuthenticationPrincipal 적용

Spring Security 의 jwt 나 폼로그인을 적용 했을 때 Principal 이나 @Authentication 를 사용하게 되는데 이는 @WithMockUser 로 테스트하면 된다. 하지만 OAuth2 를 적용시켰을 때는 @AuthenticationPricipal 을 사용하게 되는데 이때 여기가 null 값이 들어오게 돼서 NPE 오류가 발생했다. 그래서 WebMvcTest 의 이부분에 OAuth2 를 추가해줘야되는데 SecurityMockMvcRequestPostProcessors 클래스에서 제공해준다. (Spring Security 가 제공해준다) 이렇게 oidcLogin() 에 SecurityMockMvcRequestPostProcessors 클래스를 스태틱 임포트 해주면 해결된다. (추가적으로 access-token 값의 내용들도 추가해줄 수 있다)...



원문링크 : @WebMvcTest 에서 OAuth2 @AuthenticationPrincipal 적용