【问题标题】:modify Finatra response header修改 Finatra 响应头
【发布时间】:2020-01-05 16:51:21
【问题描述】:

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

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

还有什么可以修改的吗?我已经尝试过过滤器和 response.ok.header.set。但没有运气。

谢谢大家。

服务器头信息:

【问题讨论】:

    标签: finatra


    【解决方案1】:

    Finatra 在com.twitter.finatra.http.filters.HttpResponseFilter 中设置Server 标头。您可以直接使用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]
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      相关资源
      最近更新 更多