我有一个微服务,它使用microaut-security的oauth2 client-credentials流来获取访问令牌,并将其传播到头部中的resourceClient。
我想知道当现有令牌由于某种原因被撤销并且resourceClient返回401 Unauthorized响应时,是否有方法在客户端凭证流中获得新的访问令牌。
我已经验证了,如果我在多个请求的同时调用resourceClient,访问令牌将保持不变,并且只有在令牌过期后才会获取新的访问令牌。
我浏览了AbstractClientCredentialsClient中的代码,了解了它如何根据某些标准从该高速缓存或认证服务器请求令牌。
有谁知道。我如何实现从资源客户端请求401响应的新令牌,请提供任何示例。micronaut版本3.9.3
1条答案
按热度按时间taor4pac1#
如果您的微服务正在获取访问令牌,则它是客户端。在OAuth2中,只有客户端请求访问令牌。将其传播到“resourceClient”(那是什么?),因为它是为服务器到服务器认证而设计的客户端凭证流。
当令牌被撤销时,客户端从资源服务器获得401,此时它可以选择重新认证自己:只需调用requestToken()并将“force”设置为true。
怎么称呼?如果通过yaml(micronaut.security.oauth2.clients)或java配置,客户端JVM中应该有一个ClientCredentialsClient示例,只需注入它并在接收401时调用该方法。