我正在尝试让自定义 Web 应用程序与 Azure B2C OAuth 和 Spring OAuth2.0 框架一起使用。
身份验证部分恢复正常,我收到了一个 JWT 令牌。之后发生令牌请求时,我收到以下错误:
java.lang.IllegalStateException: Access token provider returned a null access token, which is illegal according to the contract.
at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:223) ~[spring-security-oauth2-2.0.8.RELEASE.jar:na]
at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:173) ~[spring-security-oauth2-2.0.8.RELEASE.jar:na]
...
从 spring 代码的一些调试中,我可以看到令牌应该被调用access_token
,如在OAuth2AccessToken
类中看到的那样。通过查看 B2C 教程,他们的令牌被称为token_id
. 此外,我的 spring 应用程序的 applications.yml 配置有一个名为 tokenName 的字段。当然,这应该用于获取令牌名称字段,而不是如上所述的硬编码静态变量。
我是否遗漏了什么,是否有解决我的问题的方法。我可以覆盖 Spring OAuth 框架使用的令牌名称字段吗?