springboot2.2.x以上版本GET请求特殊字符处理

这个问题是由于Tomcat的新版本中增加了一个新特性,就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。

   
@Configuration
public class TomcatConfig {
 
   @Bean
  public TomcatServletWebServerFactory webServerFactory() {
     TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
     factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
              @Override
              public void customize(Connector connector) {
                  //connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
                  connector.setProperty("relaxedQueryChars", "(),/:;<=>?@[\\]{}");
                  connector.setProperty("rejectIllegalHeader", "false");
               }
      });
      return factory;
  }
}

参考:https://blog.csdn.net/qq_38680405/article/details/107237724?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4.not_use_machine_learn_pai

你可能感兴趣的:(springboot2.2.x以上版本GET请求特殊字符处理)