@GetMapping을 적용한 API를 테스트하던 중에
Invalid character found in the request target 라는 에러를 맞이했다.
찾아보니 Tomcat에서 URL parameter에 특수문자가 있으면 에러를 발생시키는 것이었다.
허용이 필요한 특수문자들을 relaxedQueryChars 옵션으로 허용할 수 있었다.
그래서 Tomcat을 커스텀 할 수 있는 config 파일을 하나 추가했다.
@Configuration
public class TomcatWebCustomConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers((TomcatConnectorCustomizer)
connector -> connector.setProperty("relaxedQueryChars", "<>[\\]^`{|}"));
}
}
여러 블로그들을 참고했을 때 connector.setAttribute를 사용했던데 지금은 사용되지 않으므로 setProperty를 사용해서 특수문자를 허용하도록 해야한다.
설정을 마친 후 다시 테스트하니
결과가 잘 나오는 것을 확인할 수 있었다.
최신 버전을 사용해서 하나씩 천천히 개발하다보니 새롭게 알게 되는 것들이 많은 것 같다.
잘 정리해 가면서 개발해야겠다. 망망!
'학습' 카테고리의 다른 글
코딩테스트 준비하기 (1) | 2023.10.06 |
---|---|
ChatGPT 사용하기 (0) | 2023.09.20 |
@RequestBody DTO에 Null 넘어오는 이슈 해결 (0) | 2023.09.07 |
SQLD 자격증 따기5 - 관리 구문 및 후기 (0) | 2023.07.13 |
SQLD 자격증 따기4 - SQL 활용 (0) | 2023.07.12 |