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 ************************************************** ...
随机推荐
- Java/C++实现观察者模式--股票价格
当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场. 类图: Java代码: public class Investor implemen ...
- ubantu系统之 虚拟机不识别usb接口
1. 下载和 virtualbox 同一版本的 Orcale VM VirtualBox Extension Pack 并在ubantu上安装:2. 启动虚拟机,选中菜单栏中"设置" ...
- Java中if else条件判断语句的执行顺序
学习目标: 掌握 if else 条件判断的使用 学习内容: 1.if语法 if(boolean表达式) { 语句体; } if后面的{}表示一个整体-代码块,称之为语句体,当boolean表达式为t ...
- CSS简单样式练习(二)
运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- 解决vue安装时出现vue --version或vue不是内部命令的问题
1. 试图全局配置 vue 的环境变量,找到 vue.cmd 的路径,然后进行配置. 问题:在文件搜索中,没有找到 vue.cmd,失败. 1.npm i npm -g 全局 update 了 npm ...
- 【编译原理】自底向上分析方法——LR文法分析方法的总结
LR(0).SLR(1).LR(1).LALR(1) de 若干方面的区别 目录 推导过程 分析能力 本质区别 文法对比 可以适当利用物理意义对二义性文法进行冲突处理 推导过程 LR(0)的基础上才有 ...
- Spring Boot-切换嵌入式Servlet容器
首先我们先查看Spring Boot中支持几种嵌入式容器 选中ConfigurableWebServerFactory类,点击ctrl+h键,查看 切换到jetty容器步骤如下 1.排除掉tomcat ...
- SpringBoot注解自动扫描-底层实现
分析上文Spring Boot快速入门 @SpringBootApplication public class HelloWorldApplication { public static void m ...
- Python-术语对照表
>>> 交互式终端中默认的 Python 提示符.往往会显示于能以交互方式在解释器里执行的样例代码之前. ... 具有以下含义: 交互式终端中输入特殊代码行时默认的 Python 提 ...
- 改造@vue/cli项目为服务端渲染-ServerSideRender
VUE SEO方案二 - SSR服务端渲染 在上一章中,我们分享了预渲染的方案来解决SEO问题,个人还是很中意此方案的,既简单又能解决大部分问题.但是也有着一定的缺陷,所以我们继续来看下一个方案--服 ...