springbootThe valid characters are defined in RFC 7230 and RFC 3986

2023-10-28 03:59

本文主要是介绍springbootThe valid characters are defined in RFC 7230 and RFC 3986,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题现象
请求接口报400,参数接收错误。
二、翻译
The valid characters are defined in RFC 7230 and RFC 3986的意思就是说在请求目标中找到无效字符,有效字符在RFC 7230和RFC 3986中定义,也就请求中包含非法字符。
三、原因分析
这里的[]和{}都是非法字符。Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。
在这里插入图片描述

四、解决
第一种方法:
对于springboot而言。我们需要重新写一个配置类来让它变成合法的。

package org.jeecg.modules.jmreport.config;import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @author xuhc7* @date 2022年01月10日 15:02*/
@Configuration
public class WebConfig {@Bean(name="webServerFactory")public ServletWebServerFactory webServerFactory() {TomcatServletWebServerFactory tomcatServletWebServerFactory= new TomcatServletWebServerFactory();tomcatServletWebServerFactory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]{}"));return tomcatServletWebServerFactory;}
}

第二种方法:
在yml中配置

server:tomcat:relaxedQueryChars: <,>, [,],^,`,{,|,}

五、说明
对于网上说的降低tomcat版本个人感觉浪费时间也不实用。

这篇关于springbootThe valid characters are defined in RFC 7230 and RFC 3986的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290527

相关文章

Unable to instantiate Action, goodsTypeAction, defined for 'goodsType_findAdvanced' in namespace '/

报错: Unable to instantiate Action, goodsTypeAction,  defined for 'goodsType_findAdvanced' in namespace '/'goodsTypeAction......... Caused by: java.lang.ClassNotFoundException: goodsTypeAction.......

解决The valid characters are defined in RFC 7230 and RFC 3986

解决方法: 一、更换低版本的Tomcat;(我选的方案) 二、参考:https://blog.csdn.net/qq_32365919/article/details/82055800

leetCode#125. Valid Palindrome

Description Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car

leetcode#32. Longest Valid Parentheses

题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", wh

记一次knife4j文档请求异常 SyntaxError: Unexpected token ‘<‘, ... is not valid JSON

knife4j页面报错问题定位 前几天开发新接口,开发完成后想使用knife4j测试一下接口功能,突然发现访问页面报错提示:knife4j文档请求异常,但之前运行还是正常的,想想会不会与升级依赖有关系,启动其他微服务发现文档接口访问正常,排除因依赖版本升级导致在线API文档无法使用情况,还是和本服务新增接口有关系。 定位问题 首先f12打开调试台,重新刷新页面,看到console有报错提示

【python 编码问题】UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not

插入oracle 数据发生 错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 131-136: ordinal not in range(128) 先说解决办法: python2.7版本,在开头加入下面语句 import sysreload(sys)sys.setdefaultencoding

HYPERCASUAL - Simple Characters(卡通游戏火柴人物模型)

介绍HyperCasual - 简单角色! 一套低多边形角色资源,用于创建超休闲风格的游戏。 包含演示场景 角色(x10) 生化人、小丑、Flaty_Boss、女孩、守门员、英雄、亚马逊女战士、男人、红衣男人、修理工 每个网格大约有700-2000个顶点 角色设置与Mecanim兼容(本包中不包含动画) 着色器适用于可编写脚本的渲染管线(HD + LW) 下载:​​Unity资源商店链接资源

if !defined与pragma once

两者的共同点都是为了避免同一个文件被include多次,但是各有千秋。 在用VC6.0向导生成的头文件中,经常可以看见如下的代码段:  #if !defined(AFX_RESIZABLELAYOUT_H__INCLUDED_)  #define AFX_RESIZABLELAYOUT_H__INCLUDED_  #if _MSC_VER > 1000  #pragma once  #e

function 报错 Uncaught ReferenceError: fuzzySearch is not defined用$(document).ready(function(){ })里面的

这个情况就有点坑了 ,小胖哥看了都说写法没大问题,后面觉得把 function 函数弄出去的话试下,果然可以了!!!  $(document).ready(function(){ })里面的 function 报错 Uncaught ReferenceError: fuzzySearch is not defined 先来图看看,第一张图跟 第二张图 看起来代码写的很规矩?

LeetCode - 36. Valid Sudoku

36. Valid Sudoku  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个数独,判断这个数独是否合法. analyse: 略. Time complexity: O(N)   view