不添加远程地址根据阿卡-HTTP extractClientIP和Documentation:阿卡-HTTP的请求头
的阿卡http服务器引擎将自动添加远程地址头球每个 请求,如果相应的设置为 akka.http.server.remote-address-header设置为on。默认情况下,它是 设置为关闭。
的application.conf已设定相应
akka {
http {
server {
remote-address-header = on
}
}
}
下面的测试失败,以从请求中提取报头Remote-Address
import akka.http.scaladsl.server.Route
import akka.http.scaladsl.client.RequestBuilding
import akka.http.scaladsl.model._
import akka.http.scaladsl.testkit.ScalatestRouteTest
"Remote-Address added to request header by akka-http" in {
val request = RequestBuilding.Get("/").withHeaders(`User-Agent`(this.getClass.getSimpleName))
val miniRoute: Route = { ctx => ctx.complete("Always Succeed") }
request ~> miniRoute ~> check {
assert(responseAs[String] == "Always Succeed")
}
//confirm akka config setting is correct
assert(ConfigFactory.load().getString("akka.http.server.remote-address-header") == "on", "FAILED: please set application.conf: akka.http.server.remote-address-header = on")
val remoteIP: Option[HttpHeader] = request.headers.find(_.name == "Remote-Address")
assert(remoteIP.nonEmpty, "FAILED: Remote-Address missing in Request Headers")
}
问题应该阿卡-HTTP注入自动Remote-Address
在请求标头中?另外,我会很感激,如果你能展示如何重写这个测试的akka.http.server.remote-address-header
配置可以编程设置。