Java 具有OAuth2授权的Spring WebClient

Java 具有OAuth2授权的Spring WebClient,java,spring,spring-security,oauth-2.0,spring-webflux,Java,Spring,Spring Security,Oauth 2.0,Spring Webflux,在使用old Spring的RestTemplate与OAuth授权背后的一些API集成时,我做了一些工作: ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();resourceDetails.setClientId(oauthClientId); resourceDetails.setClientSecret(oauthClientSecret); resourceD

在使用old 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);
然后你会得到这样的结果:

client.getForEntity(restApiUri, MyEntity.class);
但它阻碍了:(

作为一种解决方法,我使用Mono.fromCallable(…)包装了旧的RestTempate。我还尝试使用WebClient做一些自定义客户端,该客户端接受令牌并授权用户,然后再调用RestApi。但这并不方便,因为令牌可能过期,我将不得不实施续订过程。OAuth中可能还有更多我不知道的陷阱


如何将Spring web flux和WebClient与Mono/flux反应对象一起使用?

可能会对您有所帮助。关于配置WebClient以您提到的方式使用它的中间文章。

似乎仍在进行中: