当使用旧的Spring的RestTemplate与OAuth授权背后的一些API集成时,我正在做某种事情:
ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();resourceDetails.setClientId(oauthClientId);
resourceDetails.setClientSecret(oauthClientSecret);
resourceDetails.setAccessTokenUri(accessTokenUri);
// and we got the restTemplate:
OAuth2RestTemplate client = new OAuth2RestTemplate(resourceDetails);
然后GET像这样:
client.getForEntity(restApiUri, MyEntity.class);
但是它阻塞了:(
作为一种解决方法,我使用Mono.fromCallable(...)包装了旧的RestTempate。我还尝试使用WebClient做一些自定义客户端,该客户端使用 token 并授权用户,然后再次调用RestApi。但这并不方便,因为 token 可能会过期,因此我必须实现续签流程。我可能还不知道,OAuth中还会有更多陷阱。
如何将Spring web-flux和WebClient与Mono/Flux react 对象一起使用?
最佳答案
也许this会为您提供帮助。关于配置Web客户端以您提到的方式使用它的中级文章。