zoukankan      html  css  js  c++  java
  • Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    今天看项目日志,发现报这个异常。

    是tomcat容器的问题,因为出现了特殊字符,所以报异常了。Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    SpringBoot 2.0.0 以上都采用内置tomcat8.0以上版本,而tomcat8.0以上版本遵从RFC规范添加了对Url的特殊字符的限制,url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~四个特殊字符以及保留字符( ! * ’ ( ) ; : @ & = + $ , / ? # [ ] ) (26*2+10+4+18=84)这84个字符,请求中出现了{}大括号或者[],所以tomcat报错。

    解决办法:

    1、降低tomcat的版本,感觉没必要。

    2、在启动类中加入如下配置。

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

      

  • 相关阅读:
    1.GoldenEye
    centos系统安装问题 dracut-initqueue timeout
    pycharm2019永久激活
    webshell不同马文件分类
    frp内网穿透工具
    永久关闭windows defender
    Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现
    python 基础(三)
    bugku-web(头等舱)
    bugku-web(变量1)
  • 原文地址:https://www.cnblogs.com/super-hu/p/13209564.html
Copyright © 2011-2022 走看看