akka-http非法请求头

Akka-http illegal request header

我公开了一个接受两个查询参数的简单端点。当我在本地测试代码时,我没有任何问题。但是当部署到产品时,我看到以下消息:

a.a.ActorSystemImpl Illegal request header: Illegal 'cookie' header: Invalid input '/', expected tchar, '\r', WSP or '=' (line 1, column 186): ...

如您所见,我没有进行任何 cookie 解析

import akka.actor.{ActorSystem, Props}
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Sink

object MainApp extends App {
  implicit val system = ActorSystem()
  implicit val materializer = ActorMaterializer()

  private val config = system.settings.config

  private val server = Http().bind(config.getString("akka.http.server.interface"), config.getInt("akka.http.server.port"))

  private val route = {
    path("replay") {
      get {
        parameters("fromDate", "toDate") { (fromDate, toDate) =>
          complete {
            <some other code>
          }
        }
      }
    }
  }

  val bindingFuture = server.to(Sink.foreach {
    connection =>
      connection handleWith route
  }).run()
}

如有任何建议,我们将不胜感激!

您正在收到非法请求 header 异常,因此调用您的端点(发出请求)的任何内容都会向您传递非法 Cookie header 值。它与此请求处理代码无关。简单地说,"It's not you, it's them"。

只要请求本身有效(除了这个错误 header),处理就应该继续(它是 non-terminal)。您可以尝试弄清楚是什么在呼叫您并修复它以摆脱该警告消息。如果他们向您传递 cookie,他们可能希望您能够正确接收并使用它。如果这不是一个选项,您可以将以下配置设置添加到您的演员系统:

akka.http.server.parsing.illegal-header-warnings = on

如果您无法解决根本问题,这将为您消除警告。