OAuth2FeignRequestInterceptor 的替代方案,依赖于已弃用的类

Posted

技术标签:

【中文标题】OAuth2FeignRequestInterceptor 的替代方案,依赖于已弃用的类【英文标题】:Alternative for OAuth2FeignRequestInterceptor that depends on a deprecated class 【发布时间】:2020-05-05 11:07:44 【问题描述】:

免责声明:老实说,我尝试在 google/github 上搜索,扫描了 OAuth2 migration guide,但找不到答案,所以我们开始吧。

来自 spring-cloud-security 项目的org.springframework.cloud.security.oauth2.client.feign.OAuth2FeignRequestInterceptor 获取 OAuth2 令牌并将其设置为 Feign 的 RequestTemplate,对客户端的调用者透明。 但是,它依赖于一个已弃用的OAuth2ClientContext 类,它引用了前面提到的迁移指南,它仍然说

对于其他流,需要一个 OAuth2ClientContext 实例 构造和暴露。

所以知道几件事会很棒: 1. 它真的被弃用了,还是只是它的用法应该改变(至少在某些情况下)? 2. 如果是前者 - 正确的选择是什么? 3. 是否有计划将OAuth2FeignRequestInterceptor 不再使用已弃用的类?

【问题讨论】:

【参考方案1】:

OAuth2FeignRequestInterceptorOAuth2ClientContext 类在最新版本中发生了变化。现在已更改为 @Deprecated。它已经有一个开放的issue 链接到它。让我们一一理解。

    OAuth2FeignRequestInterceptor :以前它曾经是 spring-cloud-security 的一部分。您现在可以在以下链接中找到它spring-cloud/spring-cloud-openfeign 确切的课程在此链接OAuth2FeignRequestInterceptor.java 中。该项目仍在进行中。

    OAuth2ClientContext :如果我们仔细查看 它说的课程:

    @deprecated See the OAuth 2.0 Migration Guide for Spring Security 5。链接中提到的迁移指南指出

    本文档包含有关移动 OAuth 2.0 客户端和 从 Spring Security OAuth 2.x 到 Spring Security 的资源服务器 5.2.x。由于 Spring Security 不提供授权服务器支持,因此迁移 Spring Security OAuth 授权服务器是 出去 本文档的范围。

    最新的变化出现在 spring-security 中。在 spring-security 5.3.x 与 OAuth2 客户端相关的信息可以在 link 中找到。 OAuth2AuthorizedClient.java 如果您参考这些信息,您将获得更多详细信息 迁移指南中提供。

    将来它将成为Spring Authorization Server 的一部分。 Github : spring-authorization-server 其中 正在开发中。存在很多与 OAuth2 相关的东西。例如 OAuth2Authorization.java 将用于获取AccessToken, RefreshToken 等

来自 *** 的有关可能有帮助的替代方案的更多信息。 this

【讨论】:

以上是关于OAuth2FeignRequestInterceptor 的替代方案,依赖于已弃用的类的主要内容,如果未能解决你的问题,请参考以下文章