3
こんにちはAkka-Httpを使って開発されたサービスがあります。 OAuthを追加する必要があります。documentationによれば、これにはauthenticateOAuth2
を使用しています。Akka-HttpでOAuth2を認証できません
型の不一致、予想されるようにエラーを与えていないが
:(L)=> server.Route、実際の:(OauthInfo)=> server.Route
この問題を解決するための適切な解決策が見つかりません。私もドキュメント内のexampleに記載されている正確なコードを試しましたが、それでも同様のコンパイル時エラーがスローされます。
私は円で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
}
}