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

开发 架构
旧的Spring Security OAuth过期,其实也不必恐慌,除非你们在这一方面的架构需要继续迭代。不过随着新的方案面世,旧方案的可维护性会大大降低,有条件的还是要迁移一下的。

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

图片

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

图片

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

图片

2020年就已经宣布了EOL时间表

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

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

图片

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

图片

Spring Security OAuth仓库已经迁移

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

图片

Spring Security OAuth2 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 Security OAuth过期,其实也不必恐慌,除非你们在这一方面的架构需要继续迭代。不过随着新的方案面世,旧方案的可维护性会大大降低,有条件的还是要迁移一下的。Spring Cloud也将会在未来某个时间点做出一些调整以适应新的架构。

责任编辑:武晓燕 来源: 码农小胖哥
相关推荐

2021-08-29 18:36:57

项目

2022-02-15 07:35:12

服务器KeycloakOAuth2

2010-02-26 08:59:29

Windows微软技术支持

2022-02-21 23:58:49

Spring过滤器顺序值

2021-04-23 07:33:10

SpringSecurity单元

2023-04-10 11:41:15

2023-09-28 08:15:05

SpringBean加载

2020-02-26 09:42:15

主存程序存储器

2009-06-18 14:18:23

Spring secu

2022-01-26 00:05:00

接口Spring管理器

2022-08-30 08:36:13

Spring权限控制

2022-08-30 08:43:11

Spring权限控制

2022-06-16 10:38:24

URL权限源代码

2022-08-15 08:42:46

权限控制Spring

2022-08-30 08:55:49

Spring权限控制

2022-08-15 08:45:21

Spring权限控制

2022-08-30 08:50:07

Spring权限控制

2022-05-19 11:29:14

计时攻击SpringSecurity

2022-11-26 00:00:02

2023-12-08 12:12:21

点赞
收藏

51CTO技术栈公众号