Spring/Spring Boot

Spring Boot mockMvc 한글 깨짐 처리

100win10 2020. 7. 31. 15:58
  • SpringBoot + SpringSecurity ( JWT ) 기반으로 REST 기반의 API 서버를 만드는 도중
  • API 문서 자동화를 위해 RestDocs를 쓰기로 결정했다.

 

  • 그 외 후보로 Swagger등도 있겠지만 테스트 작성과 더불어 문서를 만들 수 있다는 점에서 RestDocs로 결정하였다.
  • 문제는 mockMvc Test를 기반으로 문서 조각을 만들 때 Response 응답으로의 한글 처리가 깨져있다는 점이었다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
@Bean
public CharacterEncodingFilter characterEncodingFilter() {
 
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
 
    characterEncodingFilter.setEncoding("UTF-8");
 
    characterEncodingFilter.setForceEncoding(true);
 
    return characterEncodingFilter;
 
}
cs
  • 다음과 같이 CharacterEncodingFilter를 빈으로 추가해주자.  

 

 

  • 다음과 같이 AppConfig 클래스를 따로 만들어 설정 파일임을 알려준 후(@Configuration)
  • CharacterEncodingFilter 빈을 등록해 주었다.

 

 

 

  • SpringSecurity 관련 설정도 추가해주어야 하는데
  • CharacterEncodingFilter를 configure 설정 파일에 놓아주어야 한다.

 

https://stackoverflow.com/questions/20863489/characterencodingfilter-dont-work-together-with-spring-security-3-2-0/23051264#23051264

 

 

  • 이제 다시 asciidoc을 통해 http 문서 파일을 만들고 띄어본 결과
  • 한글이 깨지지 않는다!