Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC

Posted super_胡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC相关的知识,希望对你有一定的参考价值。

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

是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;
    }

  

以上是关于Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC的主要内容,如果未能解决你的问题,请参考以下文章

springboot调用service层方法报错Invalid bound statement (not found)

启动springboot项目连接nacos控制台报错com.alibaba.nacos.api.exception.NacosException: dataId invalid

springMvc+Mybatis多数据源配置报错 Invalid bound statement

Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC

IDEA:springboot框架使用mybatis-generator插件报错:org.apache.ibatis.binding.BindingException: Invalid bound s

IDEA:springboot框架使用mybatis-generator插件报错:org.apache.ibatis.binding.BindingException: Invalid bound s