无法使用 Akka-Http 对 OAuth2 进行身份验证

dee*_*eep 5 geometry scala oauth-2.0 akka-http

嗨,有一个使用 Akka-Http 开发的服务。我必须向它添加 OAuth,根据文档,我正在使用authenticateOAuth2它。

但是代码没有编译并给出错误

类型不匹配,预期:(L) => server.Route,实际:(OauthInfo) => server.Route

我无法找到解决此问题的适当解决方案。我什至尝试了文档中示例中提到的确切代码,但它仍然抛出类似的编译时错误。

我正在使用带有圆圈的 akka-http。

这是我的代码:

def route(implicit system: ActorSystem, mat: ActorMaterializer): Route =
Route.seal {
  pathPrefix("newsletter-preferences") {
    authenticateOAuth2(realm = "Secure site", authenticator) { authInfo =>
      path("frequency" / LongNumber) { custNum =>
        authorize(hasScopes(authInfo)) {
          frequencyPreference(custNum) ~ addFreqPref(custNum)
        }
      } ~ path("pause" / LongNumber) { custNum =>
        authorize(hasScopes(authInfo)) {
          pauseInfo(custNum) ~ addPauseInfo(custNum) ~ unPauseUser(custNum)
        }
      }
    } ~
      path("health") {
        healthRoute()
      }
  }
}

def hasScopes(authInfo: OAuthInfo): Boolean = ???

def authenticator(credentials: Credentials)(
  implicit system: ActorSystem,
  mat: ActorMaterializer): Option[OAuthInfo] = {
credentials match {
  case p @ Credentials.Provided(token) =>
    ???
  case _ => None
}
}
Run Code Online (Sandbox Code Playgroud)

dee*_*eep 2

这是 IntelliJ 中的一个错误。
代码运行良好,但由于某种原因 IntelliJ Idea 显示错误。