0

Finatra 默认在响应头中返回框架的名称为“Server”-> Finatra,

出于某种原因,我不想公开这部分信息。

无论如何要修改它吗?我已经尝试过过滤器和 response.ok.header.set。但没有运气。

谢谢大家。

服务器头信息:

服务器头信息

4

1 回答 1

0

FinatraServercom.twitter.finatra.http.filters.HttpResponseFilter. 您可以直接使用HttpResponseFilter或通过CommonFilters使用。

如果你想覆盖这个行为,我建议定义一个新Filter的这样

@Singleton
class CustomServerNameFilter extends SimpleFilter[Request, Response] {
  def apply(request: Request, service: Service[Request, Response]): Future[Response] =
    service(request).map { response =>
      response.headerMap.set(HttpHeaders.Server, "My Custom Server")
      response
    }
}

并在HttpResponseFilterCommonFilters之前使用它

class MyFinatraServer extends HttpServer {

  override protected def configureHttp(router: HttpRouter): Unit =
    router
      .filter[CustomServerNameFilter]
      .filter[CommonFilters]
      .add[MyController]

}
于 2020-01-05T08:51:21.160 回答