Spring Security OAuth正式终止维护,已从官网下架
Spring Security团队正式宣布Spring Security OAuth终止维护。

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

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

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

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

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

从这种情况看来大约Spring Security OAuth的确是死了。难道就没有可用的了吗?当然不是。
迁移指南
这是胖哥总结的迁移指南。
依赖项检查
那么如何检查你的项目是否用了旧的OAuth2设施呢?当然是对依赖进行检查。以下清单中的依赖任何版本的都是过期的,都需要迁移:
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth-parent</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
你可以通过mvn dependency:tree来检查依赖树是否集成了上述依赖项。
新的OAuth2替代方案
需要开发者掌握OAuth2.0、OAuth2.1、OIDC 1.0的一些知识。
Spring Security 5中集成了OAuth2 Client和Resource Server两个模块。如果有迁移的需要,建议迁移至最新的Spring Security 5.7.x,方便向Spring 6过渡。以Spring Boot为例,首先要集成Spring Security:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
这里建议使用最新版本,目前是2.7。
集成OAuth2 Client依赖
OAuth2 Client依赖于Spring Security,不能单独使用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
集成Resource Server依赖
Resource Server同样也依赖于Spring Security,不能单独使用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
集成OAuth2授权服务器依赖
目前Spring生态中的OAuth2授权服务器是Spring Authorization Server,目前已具备生产就绪能力。在最新的0.3.0版本中,官方文档正式在spring.io上线,需要你知道的是它必须在Java 11及以上版本才能使用。它也作为一个Spring Security子模块,不能单独使用:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-authorization-server</artifactId>
<version>0.3.0</version>
</dependency>
透露一下,该项目的Spring Boot Starter也将在不久实装。
学习指南
胖哥近几个月一直在对新的OAuth2相关的进行系统化总结。因此你只要关注胖哥,总能获得相关的知识和实战干货分享。当然这里胖哥也给出了一些参考的文献:
- OAuth2框架:https://oauth.net
- OIDC 1.0协议:https://openid.net
- Spring Security: http://felord.cn
- 新的Spring Security OAuth2:http://felord.cn
项目参考代码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也将会在未来某个时间点做出一些调整以适应新的架构。请持续关注,后面会及时带来相关的消息。
关注公众号:Felordcn 获取更多资讯
Spring Security OAuth正式终止维护,已从官网下架的更多相关文章
- Spring Security + OAuth系统环境搭建(一)
最近在做权限管理系统的重构工作,系统基于Spring Security + OAuth架构,整体架构.技术和之前调研的结果差不多,架构调研时有在这篇博客做过简单记录“Spring Cloud微服务下的 ...
- Spring Security OAuth 2开发者指南译
Spring Security OAuth 2开发者指南译 介绍 这是用户指南的支持OAuth 2.0.对于OAuth 1.0,一切都是不同的,所以看到它的用户指南. 本用户指南分为两部分,第一部分为 ...
- 【微服务】 数据库案例理解Spring Security OAuth
突然被问,你是做技术的怎么不走技术路线呢?是啊~仔细想想至今做了这么多年的技术,研发过的系统&产品五花八门,涉及到的领域各行各业:政府.军队.公安.国安.石油&石化.金融.教育.华为等 ...
- Spring Security OAuth 笔记
1 单点登录 关于单点登录的原理,我觉得下面这位老哥讲的比较清楚,有兴趣可以看一下,下面我把其中的重点在此做个笔记总结 https://juejin.cn/post/6844904079274197 ...
- Spring Security OAuth 2.0
续·前一篇<OAuth 2.0> OAuth 2.0 Provider 实现 在OAuth 2.0中,provider角色事实上是把授权服务和资源服务分开,有时候它们也可能在同一个应用中, ...
- Spring Security OAuth笔记
因为工作需要,系统权限安全方面可能要用到Spring Security OAuth2.0,所以,近几天了解了一下OAuth相关的东西.目前好像还没有系统的学习资料,学习主要是通过博客,内容都是大同小异 ...
- Spring Security OAuth 格式化 token 输出
个性化token 背景 上一篇文章<Spring Security OAuth 个性化token(一)>有提到,oauth2.0 接口默认返回的报文格式如下: { "ac ...
- 学习Spring Security OAuth认证(一)-授权码模式
一.环境 spring boot+spring security+idea+maven+mybatis 主要是spring security 二.依赖 <dependency> <g ...
- Using JWT with Spring Security OAuth
http://www.baeldung.com/spring-security-oauth-jwt ************************************************** ...
随机推荐
- python-成绩转换
本题要求编写程序将一个百分制成绩转换为五分制成绩.转换规则: 大于等于90分为A: 小于90且大于等于80为B: 小于80且大于等于70为C: 小于70且大于等于60为D: 小于60为E. 输入样例: ...
- 【Android开发】Coding + git命令行基本使用
上传代码 进入本地仓库的目录. cd ... 查看仓库链接 : git remote -v 如果没有,则添加url链接 : git remote add testName https://git.co ...
- Python入门-深入了解数据类型以及方法
写在开始:每一种数据类型,有对应一种功能,面对不同的问题,使用不同类型. 1.全部数据类型 1.2数值型:解决数字的计算问题 #基础的计算,求除结果,求商,求余数 print(10 / 3) prin ...
- ELK日志保留7天-索引生命周期策略
一.简介 ELK日志我们一般都是按天存储,例如索引名为"kafkalog-2022-04-05",因为日志量所占的存储是非常大的,我们不能一直保存,而是要定期清理旧的,这里就以保留 ...
- 从数据库中获取图片编号,然后通过request获取图片下载
import pandas as pd from pandas.core.dtypes.dtypes import register_extension_dtype from sqlalchemy i ...
- 9.Jenkins进阶之流水线pipeline基础使用实践(2)
目录一览: 0x01 基础实践 0x02 进阶实践 (1) Sonarqube 代码质量检测之 Pipeline Script from SCM (2) Gitlab 自动触发构建之 Pipeline ...
- sqlmap Tamper脚本编写
sqlmap Tamper脚本编写 前言 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, Postg ...
- JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Golang Zap日志
Zap日志解析 Config.yaml zap: level: 'info' #日志级别 format: 'console' #输出的级别,有console和json prefix: '[cateri ...
- WinForm中TextBox文本过长解决
方案1: 如果界面有足够的空间 可以使用Multiline属性设置多行 方案2: 可以使用文本框的MouseHover事件,触发弹窗,缺点需要按确定 private void txt_Fnote_M ...