玩2.6,URI长度超过配置的2048个字符限制

Play 2.6, URI length exceeds the configured limit of 2048 characters

我正在尝试将 Play 2.5 版本迁移到 2.6.2。我不断收到 URI-length exceeds 错误。有人知道如何覆盖它吗?

我尝试了以下 Akka 设置,但还是不行。

play.server.akka{
http.server.parsing.max-uri-length = infinite
http.client.parsing.max-uri-length = infinite      
http.host-connection-pool.client.parsing.max-uri-length = infinite      
http.max-uri-length = infinite
max-uri-length = infinite
}

只需添加

akka.http {
  parsing {
    max-uri-length = 16k
  }
}

给你的application.conf。前缀 play.server 仅用于将 Akka-HTTP 集成到 Playframework 中的一小部分便利功能,例如play.server.akka.requestTimeout。这些记录在 Configuring the Akka HTTP server backend 文档中。

由于 header 长度超过默认的 8 KB(8192),我遇到了错误。将以下内容添加到 build.sbt 并且对我有用 :D

javaOptions += "-Dakka.http.parsing.max-header-value-length=16k"

如果其他选项不起作用,您可以尝试类似的 uri 长度

这让我花了很长时间才弄明白。在文档中找不到 NOT

这是一个片段(已确认可与 play 2.8 一起使用)放入您的 application.conf 中,它也可以通过环境变量进行配置并且适用于 BOTH dev 和 prod模式:

# Dev Mode
play.akka.dev-mode.akka.http.parsing.max-uri-length = 16384
play.akka.dev-mode.akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

# Prod Mode
akka.http.parsing.max-uri-length = 16384
akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

然后您可以编辑配置或使用已部署的应用程序设置 PLAY_MAX_URI_LENGTH,它是动态配置的,无需修改命令行参数。

env PLAY_MAX_URI_LENGTH=16384 sbt run

如果有人在尝试访问站点或登录时在 chrome 浏览器中遇到此类错误。 [HTTP header 值超出配置的 8192 个字符限制] , 转到 chrome

设置 -> 安全和隐私 -> 站点设置,查看跨站点存储的权限和数据

搜索特定网站并在该网站上清除所有数据。