반응형
상황
MockMvc 를 써서 테스트하려면 403 이 발생하는 이슈를 csrf 토큰을 붙여 보내는 방법으로 해결한다.
근데 이 토큰이 request parameter 로 붙어서 가고,
rest docs 사용 시 이 항목이 문서화가 안되었다면서 아래와 같은 에러가 난다
Request parameters with the following names were not documented: [_csrf]
파악
테스트 시 csrf 를 해제하는 방법은 못찾겠다
보내는 방법을 바꿔보았다
해결
이런식으로 csrf 를 request param이 아닌 header 에 들어가도록 설정해주면
에러가 더이상 나지 않는다
//then
MockHttpServletRequestBuilder requestPost = post("/api/v1/auth/login")
.param("type","kakao")
.content(requestDtoString)
.contentType(MediaType.APPLICATION_JSON)
.with(csrf().asHeader()); // csrf가 request parameter 로 들어갈 경우 문서화 필수 오류 해결
반응형