AuthorizationServerConfigurerAdapter 已弃用
Posted
技术标签:
【中文标题】AuthorizationServerConfigurerAdapter 已弃用【英文标题】:AuthorizationServerConfigurerAdapter is deprecated 【发布时间】:2020-04-04 09:49:50 【问题描述】:我想在 spring rest API 中使用Oauth2
身份验证进行登录。但我收到了一些警告,例如 AuthorizationServerConfigurerAdapter is deprecated
,请参阅 Spring Security 5 的 OAuth 2.0 Migration Guide。
我在那里查看过,但没有找到太多的迁移指南。任何人都可以分享这个完整的例子。
提前谢谢...
【问题讨论】:
我发现了同样的问题,试图找到如何通过 Spring Security 使用 OAuth 2 实现身份验证和授权的最佳方法。可能我缺少有关 OAuth 的更深入的知识,但希望通过学习找出问题。 我试图将 spring-security-oauth2 的版本从 2.4.0.RELEASE 降级到 2.3.8.RELEASE 并且看起来它被标记为从 2.4 弃用.0.释放。两个版本都来自 11 月 -> maven repository 。我只会猜测授权服务器的迁移指南是否仍在进行中。 【参考方案1】:Spring Security OAuth2 项目目前已被弃用,Spring Security 团队有decided 不再提供对授权服务器的支持。他们将重新考虑这个决定,但目前还没有任何消息,我建议您考虑其他解决方案,例如,Keycloak。
15/04/2020:新的Spring Authorization Server 是announced。
这是一个由 Spring Security 团队领导的社区驱动项目, 专注于为 Spring 提供 Authorization Server 支持 社区。p>
2020 年 7 月 5 日: Spring Security OAuth 的生命周期已终止 clarified。
为此,我们计划为 2.4.x 和 2.5.x 线直到 2021 年 5 月。此外,2.5.x 线将支持安全修复程序,直到 2022 年 5 月,届时 项目将达到生命周期的终点。相同的生命周期结束 适用于 Spring Boot 2 自动配置项目。
【讨论】:
这是为什么AuthorizationServerConfigurerAdapter
被贬低的正确答案。让我们希望 Spring 会重新考虑...
你有任何教程或资源来帮助从旧的 Spring-Security-OAuth2 迁移到作为 Keycloak、Gluu 的开源授权服务器吗?
我也很感兴趣可以用于最新的 Spring Security。请分享!
@Geany 我写并发表了一篇描述其中一个迁移选项的帖子:sultanov.dev/blog/…
@PeterPenzov Keycloak 以及任何其他授权服务器都可以与最新的 Spring Security 一起使用:baeldung.com/spring-boot-keycloak【参考方案2】:
要在 Spring Boot 应用程序中使用 AuthorizationServer(以及 AuthorizationServerConfigurerAdapter),您可以使用Spring Security OAuth Boot 2 Autoconfig。尽管它处于维护模式,但它一直在积极更新(截至 2020 年 1 月),它的新版本是 2.2.3,对应于 Spring Boot 版本 2.2.3。它的reference guide 说:
请注意,您需要为 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>
My demo project.
更新
从 2.3.0 版开始,Spring Security OAuth Boot 2 Autoconfig(内部有 spring-security-oauth2:2.4.1)也被弃用了。
但根据 Spring 博客中的End-of-Life for Spring Security OAuth 帖子:
...计划在 2021 年 5 月之前为 2.4.x 和 2.5.x [spring-security-oauth2] 行提供补丁和安全修复。此外,在 2022 年 5 月之前,2.5.x 系列将支持安全修复程序,届时该项目将结束生命周期。 同样的生命周期结束时间表适用于 Spring Boot 2 auto-configuration 项目。
还有一个新的Spring Authorization Server 项目是announced。
这是一个由 Spring Security 团队领导的社区驱动项目,专注于为 Spring 社区提供 Authorization Server 支持。
在Spring Security OAuth 2.0 Roadmap Update 中,他们建议使用Keycloak 作为授权服务器的开源实现。所以我认为以下链接会有所帮助:
A Quick Guide to Using Keycloak with Spring Boot Keycloak Embedded in a Spring Boot Application【讨论】:
您不应建议人们使用当前已弃用的项目。 我不建议使用已弃用的项目。spring-security-oauth2-autoconfigure
还没有被弃用,我警告说它处于维护模式。问题是关于使用 AuthorizationServer
的可能性 - 我证明了这种可能性。以上是关于AuthorizationServerConfigurerAdapter 已弃用的主要内容,如果未能解决你的问题,请参考以下文章