从 akka-http 中提取 HttpServletRequest

Extract HttpServletRequest from akka-http

我们正在将我们的应用程序从 spray 迁移到 akka-http。我们需要从 HttpServletRequest 中获取一些属性(由过滤器设置)。

Spray 提供了通过将 spray.servlet.servlet-request-access 设置为 on 来提取 HttpServletRequest 的规定,例如:

def httpServletRequest(requestContext: RequestContext): Option[HttpServletRequest] = {
  requestContext.request.headers collect { case ServletRequestInfoHeader(hsRequest) => hsRequest } headOption
}

但是,我在akka-http中找不到类似的规定。我们可以在 akka-http 中实现吗?

更新:
根据 spray-servlet 尚未移植到 akka-http,而 akka 在嵌入式网络服务器上运行。我们的应用程序在 Tomcat 上运行,所以我们需要等待一段时间才能在 tomcat.

上使用 akka-http

spray-servlet is not yet ported to akka-http

不要屏住呼吸。 Akka 团队没有将 spray-servlet 模块移植到 Akka HTTP,因为 servlet 容器不能很好地填充 Akka 坚持的 reactive 方法。