Akka Http:记录堆栈还是记录堆栈?
我正在编写一个自定义指令,使用cats.XorT来包装我的未来[Xor[a,B]]。我编写了以下代码:Akka Http:记录堆栈还是记录堆栈?,akka,akka-http,Akka,Akka Http,我正在编写一个自定义指令,使用cats.XorT来包装我的未来[Xor[a,B]]。我编写了以下代码: def authenticateOrRejectWithChallenge[T](authenticator: Option[HttpCredentials] ⇒ XorTFuture[T]): AuthenticationDirective[T] = extractExecutionContext.flatMap { implicit ec ⇒ extractCrede
def authenticateOrRejectWithChallenge[T](authenticator: Option[HttpCredentials] ⇒ XorTFuture[T]): AuthenticationDirective[T] =
extractExecutionContext.flatMap { implicit ec ⇒
extractCredentials.flatMap { cred ⇒
onSuccess(authenticator(cred).value) flatMap {
case Xor.Right(x) => provide(x)
case Xor.Left(y:MyException) => reject(MyRejection(y)):Directive1[T]
case Xor.Left(e) =>
Directives.extractRequestContext.flatMap {
r =>
logger.error(e)(s"Unexpected authentication error when processing ${r.request}")
reject(MyRejection(MyException.fromUnexpectedThrowable(e))):Directive1[T]
}
}
}
}
我想到了以下问题:
- 登录到那个位置是愚蠢的吗?我应该登录到拒绝处理程序吗
- 如何在拒绝处理程序中捕获当前请求记录器?(指令提取日志?)