当前位置: 首页 > 知识库问答 >
问题:

具有OAuth2授权的Spring WebClient

常飞翼
2023-03-14

在使用旧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反应对象来实现它?

共有1个答案

严正诚
2023-03-14

也许这会对你有帮助。关于配置webclient以按照您提到的方式使用它的Medium文章。

 类似资料:
  • 问题内容: 我正在使用一组受oAuth2保护的服务。当前它是这样工作的:客户端使用其用户名和密码登录。我用这些交换令牌。我将令牌保存在会话中,并在每次调用服务时提交。它可以工作,但是问题是我完全手动执行此操作,而没有使用很多Spring Security oAuth2支持。外观如下: 如您所见,我自己创建了身份验证提供程序。它正在接受该标准,但正在产生自己的扩展,该扩展也保留了实际内容,因此将其保

  • 我在下面设置Spring配置: 和Maven设置如下:

  • 我使用spring-security-oauth2:2.3.3和spring-boot-starter-security:2.0.2构建了带有REST WS的Spring web app。但我无法设置哪些endpoint受到保护。 添加“--header”authorization:Basic{{base64 client id:password}}“也没有帮助。这怎么可能呢? 根据spring

  • 我正在使用Spring5和Java8创建一个RESTful客户机,它将登录CoinBase并在给定的时间为我进行交易。我知道存在一个不受支持的用于Coinbase的Java SDK,我也在研究这些代码以寻找线索。 我正在我的Spring应用程序中使用CoinBase Oauth2客户端,到目前为止它非常成功。我使用回调URL进行授权调用。这将打开一个对话框,如果我已经登录,请我用MyApp授权我的

  • 正如通常发生的那样,客户更改了他们的G Suite电子邮件密码,我们使用该密码发送电子邮件(在Java@AppEngine上)。令牌如预期的那样被撤销了,并且我们设法使所有的东西都能在DEV和UAT环境中正常工作,然而PROD由于某种原因仍然得到了臭名昭著的“无效授权”。我想知道数据存储中是否有一些缓存保存原始凭据?Stackdriver不允许对方法调用求值,因此无法看到里面的内容。我们怀疑这与缓

  • 我们正在开发一个微服务架构中的应用程序,该应用程序在多个OAuth2提供商(如Google和Facebook)上使用Spring Cloud OAuth2实现登录。我们还在开发自己的授权服务器,并将在下一个版本中集成。 现在,在我们的微服务(即资源服务器)上,我想知道如何处理多个< code>token-info-uri或< code>user-info-uri到多个授权服务器(例如脸书或谷歌)。