학습
Invalid character found in the request target 에러 해결하기
공덕뉸나
2023. 9. 8. 11:08
@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를 사용해서 특수문자를 허용하도록 해야한다.
설정을 마친 후 다시 테스트하니
결과가 잘 나오는 것을 확인할 수 있었다.
최신 버전을 사용해서 하나씩 천천히 개발하다보니 새롭게 알게 되는 것들이 많은 것 같다.
잘 정리해 가면서 개발해야겠다. 망망!