转载

如何在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
正文到此结束
Loading...