如何在blaze服务器(http4s)中安装servlet过滤器

时间:2016-12-05 18:48:59

标签: scala http4s

我是scala世界的新手,并使用http4s开发我的应用程序的REST层。我正在使用blaze服务器来部署/发布服务。我需要在流到达我的HttpService方法之前在流中安装servlet过滤器或拦截器。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

http4s库具有所谓的middleware功能。中间件功能是您服务的包装。 例如,您有简单的端点:

 val helloWorldService = HttpService {
  case GET -> Root / "hello" / name =>
    Ok(s"Hello, $name.")
}

要应用中间件,您可以执行以下操作:

     val service: HttpService = middleware(authedService)

      val authedService: AuthedService[User] =
        AuthedService {
          case GET -> Root / "welcome" as user => Ok(s"Welcome, ${user.name}")
        }
      val middleware = AuthMiddleware(authUser)

您需要实施authUser

val authUser: Service[Request, User] = ???

您可能想查看org.http4s.server.middleware软件包中已存在的中间件。