AuthorizationServerConfigurerAdapter 已弃用

Vij*_*mar 14 spring spring-security oauth-2.0 spring-boot spring-security-oauth2

我想Oauth2在 spring rest API 中使用身份验证进行登录。但是我收到了一些警告,例如Spring Security 5AuthorizationServerConfigurerAdapter is deprecated的OAuth 2.0 迁移指南。

课程文档

我在那里检查过,但没有找到很多迁移指南。任何人都可以分享完整的例子。

提前致谢...

Ana*_*nov 14

Spring Security OAuth2项目目前已弃用,Spring Security 团队决定不再提供对授权服务器的支持。他们将重新考虑这个决定,但目前还不清楚,我建议您考虑其他解决方案,例如Keycloak。

15/04/2020:一个新的春天授权服务器被公布。

它是一个由 Spring Security 团队领导的社区驱动项目,专注于为 Spring 社区提供授权服务器支持。

07/05/2020: Spring Security OAuth 的生命周期终止已经明确。

为此,计划是在 2021 年 5 月之前为 2.4.x 和 2.5.x 系列提供补丁和安全修复。此外,在 2022 年 5 月之前将支持 2.5.x 系列的安全修复,届时该项目将已达到使用寿命。相同的生命周期结束时间适用于 Spring Boot 2 自动配置项目。

  • 这是“AuthorizationServerConfigurerAdapter”被废弃的正确答案。希望 Spring 能够重新考虑...... (2认同)

Cep*_*pr0 5

要在 Spring Boot 应用程序中使用AuthorizationServer(以及 AuthorizationServerConfigurerAdapter),您可以使用Spring Security OAuth Boot 2 Autoconfig。尽管处于维护模式,但它正在积极更新(截至 2020 年 1 月),其最新版本为 2.2.3,对应于 Spring Boot 版本 2.2.3。它的参考指南说:

请注意,您需要为spring-security-oauth2-autoconfigure指定版本,因为它不再由 Spring Boot 管理,但无论如何它应该与 Boot 的版本匹配

我在我的演示项目中使用了它,一切似乎都很好。因此,要使用 OAuth2、JWT 令牌、授权和资源服务器,您只需将其添加到您的项目中:

    <dependency>
        <groupId>org.springframework.security.oauth.boot</groupId>
        <artifactId>spring-security-oauth2-autoconfigure</artifactId>
        <version>2.2.3.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我的演示项目。

更新

从版本 2.3.0 开始,Spring Security OAuth Boot 2 Autoconfig(在引擎盖下有 spring-security-oauth2:2.4.1)也被弃用。

但根据Spring 博客中Spring Security OAuth 的生命周期终止:

...计划是在2021年5 月之前为 2.4.x 和 2.5.x [spring-security-oauth2] 系列提供补丁和安全修复。此外,在2022年5 月之前,将支持 2.5.x 系列的安全修复程序,届时该项目将终止。相同的生命周期结束时间适用于Spring Boot 2 自动配置项目。

还宣布了一个新的Spring Authorization Server项目。

它是一个由 Spring Security 团队领导的社区驱动项目,专注于为 Spring 社区提供授权服务器支持。


在Spring Security OAuth 2.0 路线图更新中,他们建议使用Keycloak作为授权服务器的开源实现。所以我认为以下链接会有所帮助:

  • 我不建议使用已弃用的项目。`spring-security-oauth2-autoconfigure` 尚未弃用,我警告说它处于维护模式。问题是关于使用“AuthorizationServer”的可能性 - 我演示了这种可能性。 (3认同)
  • 您不应该建议人们使用当前已弃用的项目。 (2认同)