SpringBoot项目url请求中带有特殊符号{}|返回400的问题

原因:springboot内置tomcat版本严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范规定的Url中不包含{}|
解决方案:有两种方法解决
方法一:添加配置类,代码如下(本人亲测有效

package com.welb.config;

import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 1. @author cq
 2. @title: TomcatConfig
 3. @projectName springBootDemo
 4. @description: tomcat特殊字符处理问题
 5. @date 2020/5/5 21:06
 */
@Configuration
public class TomcatConfig {
    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            //允许的特殊字符
            connector.setProperty("relaxedQueryChars", "|{}[]");
        });
        return factory;
    }
}

方法二:更改springboot内置的Tomcat版本(未测试,如果您尝试,请在评论区发表您的结果,以供大家学习
步骤1. 查看使用的org.springframework.boot版本
在这里插入图片描述如图所示,我的版本为2.2.6

打开本地maven repository目录下的spring-boot-dependencies文件:
D:\repository\org\springframework\boot\spring-boot-dependencies\2.2.6.RELEASE\spring-boot-dependencies-2.2.6.RELEASE.pom
在这里插入图片描述
可以在标签下面找到<tomcat.version>8.5.20</tomcat.version>
在这里插入图片描述
推测!!!修改此处tomcat版本恢复到低版本,例如:8.0.32版本即可修改URL传特殊字符问题,方法一本人亲测有效,方法二未测试。
————————————————
版权声明:本文为CSDN博主「johnny233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lonelymanontheway/article/details/79562512

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值