Spring宣布旧的Spring Security OAuth彻底停止维护,连文档仓库都没了

举报
码农小胖哥 发表于 2022/06/04 00:59:54 2022/06/04
【摘要】 Spring Security团队正式宣布Spring Security OAuth终止维护,到达生命的终点。 目前官网的主页已经高亮提醒彻底停止维护。 旧的Spring Security OAuth项目终止到2.5.2.RELEASE版本,该项目将不会再进行任何的迭代,包括Bug修复,之前胖哥已经提醒该项目即将停...

32019599f6a4fdeb3985ec32c606a9a4.gif

Spring Security团队正式宣布Spring Security OAuth终止维护,到达生命的终点。

d7d976158040517ea0747ad2ee197251.png

目前官网的主页已经高亮提醒彻底停止维护。

d7e7281238b8a4ddd8be38c566ea5ad9.png

旧的Spring Security OAuth项目终止到2.5.2.RELEASE版本,该项目将不会再进行任何的迭代,包括Bug修复,之前胖哥已经提醒该项目即将停止维护,有心的同学已经进行了迁移。

9d371443bf505926aa2b49d960001878.png 2020年就已经宣布了EOL时间表

项目文档和代码仓库被移除

目前该项目的官方文档已经正式从spring.io移除,文档已经指向404,这连文档也没有了。新增了OAuth2授权服务器Spring Authorization Server的文档。

68f2ac8ab22c8b8b4452f160bc8adf6d.png

不仅仅文档被移除,连项目的仓库也被迁移到Spring的过期项目仓库spring-attic并被标记为read-only

a5f16fdd19fa6681dbf58863c553c05d.png Spring Security OAuth仓库已经迁移

Spring Security OAuthSpring Boot自动配置代码仓库也一并被迁移,也就是说Spring Boot相关的自动配置也被移除。

f9a6432b91acdf2b168d4a810b29f6fa.png Spring Security OAuth2 Boot仓库被迁移

从这种情况看来大约Spring Security OAuth的确是死了。难道就没有可用的了吗?当然不是。

迁移指南

这是胖哥总结的迁移指南。

依赖项检查

那么如何检查你的项目是否用了旧的OAuth2设施呢?当然是对依赖进行检查。以下清单中的依赖任何版本的都是过期的,都需要迁移:


   
  1. <dependency>  
  2.                 <groupId>org.springframework.security.oauth</groupId>
  3.                 <artifactId>spring-security-oauth-parent</artifactId>
  4.         </dependency>
  5.   <dependency>  
  6.                 <groupId>org.springframework.security.oauth</groupId>
  7.                 <artifactId>spring-security-oauth</artifactId>
  8.         </dependency>
  9.   <dependency>  
  10.                 <groupId>org.springframework.security.oauth</groupId>
  11.                 <artifactId>spring-security-oauth2</artifactId>
  12.         </dependency>
  13.         <dependency>
  14.     <groupId>org.springframework.security</groupId>
  15.          <artifactId>spring-security-jwt</artifactId>
  16.   </dependency>
  17.         <dependency>
  18.             <groupId>org.springframework.security.oauth.boot</groupId>
  19.             <artifactId>spring-security-oauth2-autoconfigure</artifactId>
  20.         </dependency>

你可以通过mvn dependency:tree来检查依赖树是否集成了上述依赖项。

新的OAuth2替代方案

需要开发者掌握OAuth2.0OAuth2.1OIDC 1.0的一些知识。

Spring Security 5中集成了OAuth2 ClientResource Server两个模块。如果有迁移的需要,建议迁移至最新的Spring Security 5.7.x,方便向Spring 6过渡。以Spring Boot为例,首先要集成Spring Security


   
  1. <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-security</artifactId>
  4.         </dependency>

这里建议使用最新版本,目前是2.7。

集成OAuth2 Client依赖

OAuth2 Client依赖于Spring Security,不能单独使用:


   
  1. <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-oauth2-client</artifactId>
  4.         </dependency>

集成Resource Server依赖

Resource Server同样也依赖于Spring Security,不能单独使用:


   
  1. <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
  4.         </dependency>

集成OAuth2授权服务器依赖

目前Spring生态中的OAuth2授权服务器是Spring Authorization Server,目前已具备生产就绪能力。在最新的0.3.0版本中,官方文档正式在spring.io上线,需要你知道的是它必须在Java 11及以上版本才能使用。它也作为一个Spring Security子模块,不能单独使用:


   
  1. <dependency>
  2.             <groupId>org.springframework.security</groupId>
  3.             <artifactId>spring-security-oauth2-authorization-server</artifactId>
  4.             <version>0.3.0</version>
  5.         </dependency>

透露一下,该项目的Spring Boot Starter也将在不久实装。

学习指南

胖哥近几个月一直在对新的OAuth2相关的进行系统化总结。因此你只要关注胖哥,总能获得相关的知识和实战干货分享。当然这里胖哥也给出了一些参考的文献:

  • OAuth2框架:https://oauth.net

  • OIDC 1.0协议:https://openid.net

  • Spring Security: Spring 官方文档或者胖哥公众号回复 2021开工福利2022开工福利

  • 新的Spring Security OAuth2:http://felord.cn

  • OAuth2系列教程、源码解读:https://blog.csdn.net/qq_35067322/category_11691173.html

项目参考DEMO:

  • Spring Security 5 学习:https://gitee.com/felord/security-learning

  • Spring Security OAuth2 教程:https://github.com/NotFound403/spring-security-oauth2-tutorial

  • 授权服务器控制台Id Server:https://github.com/NotFound403/id-server

  • 登录扩展插件:https://github.com/NotFound403/spring-security-login-extension

总结

旧的Spring Security OAuth过期,其实也不必恐慌,除非你们在这一方面的架构需要继续迭代。不过随着新的方案面世,旧方案的可维护性会大大降低,有条件的还是要迁移一下的。Spring Cloud也将会在未来某个时间点做出一些调整以适应新的架构。请持续关注,后面会及时带来相关的消息。

8c81149796fcb70641bb3e99ec9ad01b.gif

文章来源: felord.blog.csdn.net,作者:码农小胖哥,版权归原作者所有,如需转载,请联系作者。

原文链接:felord.blog.csdn.net/article/details/125109059

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。