当使用旧的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做一些自定义客户端,它接受令牌并授权用户,然后再次调用RestApi。但由于令牌可能会过期而且我不得不实施续订流程,因此不方便。在OAuth中还有更多我不知道的陷阱。
如何使用Spring web-flux和WebClient与Mono / Flux反应对象进行操作?