64  
查询码: 00000657
如何在SpringBoot/Tomcat的URL查询字符串中的支持括号?
来源:https://www.jdon.com/53427
作者: 周杨 于 2022年06月01日 发布在分类 / 计算机应用 / 编程 ,于 2022年06月01日 编辑
字符 tomcat 使用 查询 设计 字符串 属性 这些 文章 驱动

有些Web API 在URL查询字符串中使用方括号,典型的例子是Promethues HTTP API,它使用诸如的查询参数如:match【】=<series_selector>。不幸的是,许多浏览器不符合该规范,并以未编码形式使用这些字符。这将导致Tomcat返回400错误。

为解决此问题,Tomcat 8.5.32引入了HTTP连接器的两个配置属性,以放松在URL路径和查询字符串中处理这些字符的限制。只适合如下字符:

" < > [ \ ] ^ `` { | } 


这两个属性是:
  • relaxedPathChars -路径中允许使用未编码的字符
  • relaxedQueryChars -查询字符串中允许使用未编码的字符

如果您使用的是Spring Boot嵌入式Tomcat服务器,则可以使用配置属性 server.tomcat.relaxed-path-chars和server.tomcat.relaxed-query-chars。

在Spring Boot 中2.2.0.M5 添加了Tomcat的这些配置属性。如果您使用的是旧版的Spring Boot,则可能需要切换到另一个servlet容器,例如Undertow。







 历史版本

备注 修改日期 修改人
格式调整 2022-06-01 11:30:02[当前版本] 系统管理员
CREAT 2022-06-01 11:24:36 系统管理员

知识分享平台 -V 5.1.4 -大信谛威