无法通过play + silhouette中的现有承载令牌进行身份验证
我使用:
trait BTEnv extends Env {
type I = User
type A = BearerTokenAuthenticator
}
控制器代码:
class RestController @Inject() (
components: ControllerComponents,
silhouette: Silhouette[BTEnv],
socialProviderRegistry: SocialProviderRegistry
)(
implicit
ex: ExecutionContext
) extends AbstractController(components) with I18nSupport with Logger {
def secured = silhouette.SecuredAction(WithProvider[BTEnv#A](CustomProvider.ID)) { implicit request: SecuredRequest[BTEnv, AnyContent] =>
Ok("42")
}
def unsecured = silhouette.UnsecuredAction.async {
implicit request: Request[AnyContent] => Future.successful(Ok("420"))
}
}
自定义提供程序的依据:
https://gist.github.com/iOgre/02a4ed1eff9656e8f9bc57baf0c36d14
要点模块剪影
https://gist.github.com/iOgre/99222d040461e699146397ae6bd075f3
我已经从身份服务器收到访问令牌,并在请求端点时使用它(在提供的控制器代码中为def安全的...)
我将令牌传递为: 授权:不记名{my-token-here} 并请求返回未经授权的内容,并重定向到预定义的网址 但我找不到代码在哪里解析和验证令牌
我做了一些调试,但是WithProvider中都不是isAuthorized方法 case类,CustomProvider类层次结构中的auth函数也不会运行。 至少断点没有命中