如何在SpringBoot/Tomcat的URL查询字符串中的支持括号?

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

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

<font>" < > [ / ] ^ `` { | } 
</font>

这两个属性是:

  • 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。

原文 

https://www.jdon.com/53427

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 如何在SpringBoot/Tomcat的URL查询字符串中的支持括号?

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址