访问令牌响应:tokenType 不能为 null

2024-03-27

我正在升级我的服务并使用 oAuth2 实现 webclient,但我收到的异常是“tokenType 不能为空”,您能帮我解决这个问题吗?

例外: org.springframework.security.oauth2.core.OAuth2AuthorizationException:[invalid_token_response]尝试检索OAuth 2.0访问令牌响应时发生错误:提取类型[类org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse的响应时出错] 和内容类型 [application/json];嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:读取 OAuth 2.0 访问令牌响应时发生错误:tokenType 不能为 null;嵌套异常是 java.lang.IllegalArgumentException: tokenType 不能为 null


请看一下https://github.com/spring-projects/spring-security/issues/5983#issuecomment-430620308 https://github.com/spring-projects/spring-security/issues/5983#issuecomment-430620308

这是众所周知的问题,因为规范要求在访问令牌访问 uri 时在对客户端的响应中存在令牌类型(在我们的例子中为 BEARER),如果不存在此类型,Spring security oauth 不会影响默认值参数 tokentype,您可以在上面的链接中找到解决方法。

OAuth 规范指出:https://www.rfc-editor.org/rfc/rfc6749#section-5.1 https://www.rfc-editor.org/rfc/rfc6749#section-5.1

5.1.成功回应

授权服务器颁发访问令牌和可选的 刷新令牌,并通过添加以下内容来构造响应 HTTP 响应实体主体的参数,带有 200(OK) 状态码:

访问令牌 必需的。授权服务器颁发的访问令牌。

令牌类型 必需的。所发行代币的类型,如中所述 第 7.1 节。值不区分大小写。

过期日期在 受到推崇的。访问令牌的生命周期(以秒为单位)。为了 例如,值“3600”表示访问令牌将 自生成响应之日起一小时后过期。 如果省略,授权服务器应该提供 过期时间可以通过其他方式或记录默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问令牌响应:tokenType 不能为 null 的相关文章

随机推荐