【问题标题】:OAuth2AccessTokenResponseClient - Interface is blocking?OAuth2AccessTokenResponseClient - 接口阻塞?
【发布时间】:2020-04-13 22:14:08
【问题描述】:

我使用的代码库有一个有效的 OAuth 模型,它使用 OAuth2RestTemplate 来管理访问令牌和访问令牌请求。由于不推荐使用 OAuth2RestTemplate,我想转移到 Spring Security OAuth & WebClient。

当我查看一些涉及的类时,我惊讶地发现 OAuth2AccessTokenResponseClient 不返回 Mono,并且默认实现 - DefaultPasswordTokenResponseClient - 在内部使用 RestTemplate。

我认为 WebClient 的主要优点之一是它是非阻塞的?如果是这样,为什么阻塞 I/O 是请求访问令牌的默认策略之一?从响应式/WebClient 新手的角度来看,我不明白为什么 OAuth2AccessTokenResponseClient 本身不是 WebClient 实例。

如果我尝试编写使用 WebClient 请求令牌的自定义过滤器,我会遇到主要障碍或难以检测的错误吗?我在这方面没有太多的知识可以建立,但如果有人能提供帮助,我仍然会很感激。

【问题讨论】:

    标签: spring spring-boot spring-security spring-security-oauth2


    【解决方案1】:

    你错了一点:OAuth2RestTemplate 没有被弃用;自 Spring 2.2.0 版以来,大量类被移至新库和其他库,Spring 在 OAuth 模块中仅保留身份验证服务器,所有其他类都注释为已弃用。 OAuth2RestTemplate 被进一步使用,只是与另一个包一起使用。

    鉴于此,您可以进一步使用 RestTemplate,但需要在项目中进行更改。或者,当然,转移到 WebClient。这种方法没有好坏之分,它只是可以异步和非阻塞地工作。

    我们在项目中决定不迁移到新版本,等待有关迁移的清晰且完全可理解的文档(至少在上个月它不完整且不完全可理解)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多