Tomcat 9 Invalid character found in the request target. The valid characters are ...解决方法

Tomcat 9 Invalid character found in the request target. The valid characters are ...解决方法

1.问题描述, Tomcat 严格遵循 RFC7230和3986中的定义 出现一些字符 就会被拦截. 从而返回400,博主遇见这个问题是因为应要求, 一个请求 携带参数并完成下载功能, 只能穿这么多参数,

2.问题解决;
(a Spring Boot 启动 可以在Application 里加一个Bean

 @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\"));
        return factory;
    }

(b Tomcat 部署环境 启动 可以在conf文件夹下的 server.xml 里 修改Connector 标签 加入 relaxedQueryChars="[]|{}^\`"<>" 如

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               relaxedQueryChars="[]|{}^\`"<>"
               redirectPort="8443" />

你可能感兴趣的:(JAVA,Bug)