首页 > 其他分享 >解决 springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范,导致在 GET 请求中出现保留字符请求错误的问题。

解决 springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范,导致在 GET 请求中出现保留字符请求错误的问题。

时间:2023-10-12 14:33:06浏览次数:50  
标签:请求 keyWord 60 版本 2.6 springboot

项目中get请求:http://domain:port/api/module/function/getList?pageNum=1&pageSize=1000&keyWord=[]&id=;

keyWord的参数应该是 keyWord="[]",如果不加双引号,keyWord就变成了数组,后台接口就报错了。

调查原因:springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范, "[]" 是规范的保留字。

处理方法:

/**
 * Project : 
 * Version : 1.01
 * Date : 2023/7/26 星期三 14:11
 *
 * @Author: chenxy
 * Modification history :
 * 解决 springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范,导致在 GET 请求中出现保留字符请求错误的问题。
 **/
@Configuration
public class TomcatConfig {
    @Bean
    public TomcatServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((Connector connector) -> {
            connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
            connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
        });
        return factory;
    }
}

  

标签:请求,keyWord,60,版本,2.6,springboot
From: https://www.cnblogs.com/ron-01/p/17759395.html

相关文章

  • SpringBootCMS漏洞复现分析
    SpringBootCMS,极速开发,动态添加字段,自定义标签,动态创建数据库表并crud数据,数据库备份、还原,动态添加站点(多站点功能),一键生成模板代码,让您轻松打造自己的独立网站,同时也方便二次开发,让您快速搭建个性化独立网站,为您节约更多时间。http://www.jrecms.com环境搭建修改src/main/......
  • PageOffice6 版本常用事件
    1、AfterDocumentOpened事件打开文件后自动触发的事件是AfterDocumentOpened事件,它通常用于实现文件打开后自动执行某些业务逻辑,比如将默认控件全屏、禁止保存、另存、打印,或者显示或隐藏痕迹等。因此,所有需要在文件打开后自动触发的业务逻辑代码都可以放在此事件中执行。在实......
  • SpringBoot + SpringBatch + Quartz整合定时批量任务
    1、引言最近一周,被借调到其他部门,赶一个紧急需求,需求内容如下:PC网页触发一条设备升级记录(下图),后台要定时批量设备更新。这里定时要用到Quartz,批量数据处理要用到SpringBatch,二者结合,可以完成该需求。由于之前,没有用过SpringBatch,于是上网查了下资料,发现可参考的不是很多,于是只能去......
  • 创建一个带有重试机制的请求函数,用于避免请求受限或失败时重新尝试请求。
    /***创建一个带有重试机制的请求函数,用于避免请求受限或失败时重新尝试请求。*@param{function}func-要执行的请求函数。*@param{number}maxCount-最大重试次数,默认为10。*@param{number}time-重试间隔时间(毫秒),默认为1500毫秒。*@returns{object}......
  • 忽视日志吃大亏,手把手教你玩转 SpringBoot 日志
    一、日志重要吗程序中的日志重要吗?在回答这个问题前,笔者先说个事例:❝笔者印象尤深的就是去年某个同事,收到了客户反馈的紧急bug。尽管申请到了日志文件,但因为很多关键步骤没有打印日志,导致排查进度很慢,数个小时都没能排查到问题,也无法给出解决对策。导致了客户程序一直阻断,最......
  • Dash 2.14版本开始支持动态回调注册!
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master大家好我是费老师,就在昨晚,Dash框架发布了其2.14.0新版本,新增的功能中,有一项非常令人兴奋,那就是其针对回调函数这一Dash中的核心概念,新增了动态回调函数注册的支持......
  • 前端请求代理配置
    前端请求代理配置,解决跨域问题,适用于React、Vue项目优点:可以配置多个代理,可以灵活控制请求是否走代理。缺点:配置繁琐,前端请求资源时必须带上前缀。第一步安装yarnaddhttp-proxy-middleware--save第二步新建文件在项目的src目录下新建文件setupProxy.js,脚手架会......
  • k8s 1.18 和1.10的区别 k8s 1.18 和1.10之间版本升级了哪些功能
     Kubernetes(K8s)是一个快速发展的开源容器编排平台,每个版本都带来新功能、改进和修复。以下是Kubernetes1.18和1.10版本之间的一些主要区别:API版本:Kubernetes1.18引入了新的API版本,扩展和增强了KubernetesAPI的功能。新版本中可能会有一些旧版......
  • 关于 Spartacus CMS 请求响应是否应该被 Transfer State 机制 cover 的问题
    Spartacus默认设置是CMS请求会在CSR和SSR两种环境下都执行,动机是应对在页面渲染过程中,Back-Office有变化发生的情况。如果确实只希望CMS只在SSR端执行,将routing.loadStrategy改成ONCE即可。这个Stackoverflow帖子做了详细说明。打开上面的cms-store.module......
  • HTTP请求
    实体标签ETag(实体标签)是HTTP响应头的一部分,用于标识响应内容的版本。它通常是服务器根据资源的内容生成的唯一标识符。ETag的生成方法可以根据资源的不同而变化,但通常有以下几种方式:生成方法描述哈希算法服务器使用哈希算法(如MD5、SHA-1、SHA-256等)计算资源内容的哈希......