我试图在我的应用程序(客户端)中使用已安装的oauth2提供程序的spring OAUTH2sso。在oauth2提供程序中配置客户端,并在客户端配置clientIcret,clientSecret,accessTokenUri和userAuthorizationUri,当用户通过身份验证并授权客户端时,客户端显示身份验证错误,因为springOauth2sso库没有得到用户的详细信息。
Whitelabel错误页面此应用程序没有明确的映射 /错误,所以你看到这是一个后备。 1月21日星期四10:28:28 CET 2016出现意外错误(type = Unauthorized,status = 401)。 身份验证失败:无法从令牌
获取用户详细信息
我使用其他oauth2库测试了我的提供程序,它非常好,但我不确定在这种情况下发生了什么。
答案 0 :(得分:1)
这个错误可能有很多不同的含义,因为它是 InvalidTokenException 的包装器。
您的令牌可能无效,已过期或客户端可能存在问题,甚至在检索UserDetails时出现问题。
要获得有关此问题的更多信息,我建议调试并将调试点直接放到此错误的来源OAuth2ClientAuthenticationProcessingFilter。在第99行,此过滤器尝试从 ResourceServerTokenServices 实施加载身份验证,如果您进入该调用,您将找出导致错误的原因。
此外,我不确定我是否正确理解您的配置,但我想您可能需要以下两个属性中的一个:
security.oauth2.resource.token-info-uri
security.oauth2.resource.user-info-uri
此处有更多信息:Spring Boot Docs