今天看到一个bug说的是客户在输入框输入"XXXXX[2023]XXXXXXX"的时候报了400的问题,看了半天看不出什么问题,然后百度了一下发现是一下原因造成的:
Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,在http解析时做了严格限制。RFC3986文档规定,请求的Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。
解决办法简单的就是在SpringBoot启动类的地方加上以下的的代码
@Bean
public ConfigurableServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector ->
connector.setProperty("relaxedQueryChars", "|{}[]\\"));
return factory;
}
内容来源于 http://t.csdn.cn/26UNs