【问题标题】:Oauth2 authentication failedOauth2 身份验证失败
【发布时间】:2016-04-27 11:30:12
【问题描述】:

我正在尝试在我的应用程序(客户端)中使用 spring OAUTH2sso,并安装了一个 oauth2 提供程序。在 oauth2 提供程序中配置客户端并在客户端中配置 clientId、clientSecret、accessTokenUri 和 userAuthorizationUri 时,当用户通过身份验证并授权客户端以及重定向后,客户端向我显示身份验证失败错误,因为 springOauth2sso 库不获取用户详细信息。

Whitelabel 错误页面 此应用程序没有明确的映射 /error,因此您将其视为后备。 1 月 21 日星期四 10:28:28 CET 2016 出现意外错误(类型=未授权,状态=401)。 身份验证失败:无法从令牌获取用户详细信息

我用其他 oauth2 库测试了我的提供程序,结果非常好,但我不确定在这种情况下发生了什么。

【问题讨论】:

    标签: authentication oauth spring-security single-sign-on


    【解决方案1】:

    此错误可能有很多不同的含义,因为它是 InvalidTokenException 的包装器。

    您的令牌可能无效、已过期或您的客户端可能存在问题,甚至在检索 UserDetails 时出现问题。

    要获取有关此问题的更多信息,我建议进行调试并将调试点直接放置到此错误的来源OAuth2ClientAuthenticationProcessingFilter。在第 99 行,此过滤器正在尝试从 ResourceServerTokenServices 实现加载身份验证,如果您进入该调用,您将找出导致错误的原因。

    我也不确定我是否正确理解了您的配置,但我想您可能需要以下两个属性之一:

    security.oauth2.resource.token-info-uri
    security.oauth2.resource.user-info-uri
    

    更多信息在这里:Spring Boot Docs

    【讨论】:

    • 感谢您的回答。我没有意识到我的属性中定义了错误的 jwt,并且错误是 invalid_token,因为库尝试使用 jwt 读取令牌。
    • 很高兴为您提供帮助 :) 由于各种原因,我不得不自己多次调试相同的错误。起初当然没有帮助,这个错误是很多可能出错的东西的包装:)
    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2021-05-22
    • 2016-12-26
    • 2014-01-24
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多