如何在Akka-http服务中添加实现接口javax.servlet.Filter的类,例如下面的示例AkkaHttpMicroservice:
object AkkaHttpMicroservice extends App with Service {
override implicit val system = ActorSystem()
override implicit val executor = system.dispatcher
override implicit val materializer = ActorMaterializer()
override val config = ConfigFactory.load()
override val logger = Logging(system, getClass)
Http().bindAndHandle(routes, config.getString("http.interface"), config.getInt("http.port"))
}在Scalatra中,需要先访问override def init(context: ServletContext),然后是context.addFilter("mySecurityFilter", SecurityFilter),但在akka-http中不清楚ServletContext在哪里可以访问。
发布于 2018-01-18 07:32:12
不幸的是,Akka-Http并不是基于标准的Java Servlet API。实际上,整个HTTP处理都是从TCP连接级别重新实现的。这样做是为了充分利用Akka/Akka Streams的力量。然而,这意味着您不能将javax.servlet.Filter应用于基于Akka的应用程序。您可能希望使用Directives。
https://stackoverflow.com/questions/48311197
复制相似问题