본문 바로가기
학습

Invalid character found in the request target 에러 해결하기

by 공덕뉸나 2023. 9. 8.

@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