SpringBoot内置tomcat,不支持URL中存在特殊字符

编程入门 行业动态 更新时间:2024-10-27 03:28:44

SpringBoot内置tomcat,<a href=https://www.elefans.com/category/jswz/34/1771331.html style=不支持URL中存在特殊字符"/>

SpringBoot内置tomcat,不支持URL中存在特殊字符

转载自以下博客
原博链接:
.

本人作出轻微修改

问题

访问SpringBoot项目,URL为
http://192.168.31.228:10020/login?phone=86|18233334444&msg=123456
项目报错。信息如下:

java.lang.IllegalArgumentException: Invalid character found in the request target [/login?phone=86|18233334444&msg=123456]. The valid characters are defined in RFC 7230 and RFC 3986

解决

发现是Tomcat版本问题,原因高版本加了对请求头字符的限制。
增加对Tomcat配置即可,代码如下

package com.config;import org.apache.catalina.connector.Connector;
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;/*** 解决高版本Tomcat不支持在URL中传入特殊字符(比如|)的问题*/
@Configuration
public class TomcatServerConfig {@Beanpublic ConfigurableServletWebServerFactory webServerFactory() {TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {@Overridepublic void customize(Connector connector) {//允许特殊字符connector.setProperty("relaxedQueryChars", "|{}[]");}});return factory;}
}

更多推荐

SpringBoot内置tomcat,不支持URL中存在特殊字符

本文发布于:2024-02-10 15:52:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1676117.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不支持   特殊字符   SpringBoot   tomcat   URL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!