Spring Security OAuth过期后怎么解决

  

Spring Security OAuth过期后怎么解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

大家在选择 OAuth3 依赖的时候,可能也会困惑,有好几个地方都可以选:

Spring Security OAuth过期后怎么解决

Spring Security OAuth过期后怎么解决

那么到底选择哪一个依赖合适呢?这不同的依赖又有什么区别?今天松哥就来和大家聊一聊 Spring Security 中关于 OAuth3 的恩怨。

先来大致介绍一下 OAuth3 在 Spring 框架中的发展历程。

大约十年前,Spring 引入了一个社区驱动的开源项目 Spring Security OAuth,并将其纳入 Spring 项目组合中。到今天,它已经发展成为一个成熟的项目,可以支持大部分 OAuth 规范,包括资源服务器客户端授权服务器等。

现在它已成为 UAA(User Account and Authentication Server) 的基础。Spring Security OAuth 项目已成为一个样板项目,它证明了 Spring 社区可以出色的完成工作。

然而早期的项目存在这样一些问题:

  • OAuth 是在很早的时候完成的,开发者无法预料未来的变化以及这些代码到底要被怎么用,导致很多 Spring 项目提供了自己的 OAuth 支持,这就带来了 OAuth3 支持的碎片化。
  • 最早的 OAuth 项目同时支持 OAuth2.0 和 OAuth3.0,现在 OAuth2.0 早已经不再使用,可以放弃了
  • 现在我们有更多的库可以选择,可以在这些库的基础上去开发,以便更好的支持 JWT 等新玩意。

基于以上这些原因,官方决定在社区成功的基础上,重写 Spring Security OAuth,以更好地协调 Spring 和 OAuth,并简化代码库,以使 Spring 的 OAuth 支持更加灵活。

然而,在重写的过程中,发生了不少波折。

2018.01.30

事情得从 2018 年 1 月 30 号讲起。

那天 Spring 官方发了一个通知,说是要逐渐停止现有的 OAuth3 支持,而在 Spring Security5 中构建下一代 OAuth3.0 支持。

为什么要这样呢?

大家知道,OAuth3 只是一种协议,Spring 框架通过代码对这种协议进行落地。

当时 OAuth3 的落地方案比较混乱(这种混乱到今天依然存在),在 Spring Security OAuth、Spring Cloud Security、Spring Boot 1.5.x以及当时最新Security5的春天。x中都提供了对OAuth3的实现。

以至于当开发者需要使用OAuth3时,不得不问,到底选哪一个依赖合适呢?已经有三个地方提供了OAuth3的支持,已经够混乱了,为什么还要在最新Security5的春天。x中继续提供实现呢?

太乱了!

所以春官方决定有必要将OAuth3.0的支持统一到一个项目中,以便为用户提供明确的选择并避免任何潜在的混乱,同时OAuth3的开发文档也要重新编写,以方便开发人员学习。所有的决定将在春天Security5中开始,构建下一代OAuth3.0的支持。

从那个时候起,Spring Security OAuth项目就正式处于维护模式。官方将提供至少1年的错误/安全修复程序,并且会考虑添加次要功能,但不会添加主要功能。同时将Spring Security OAuth中的所有功能重构Security5到春天。x中。

老实说,这是一个英明的决定,当时并没有引起太多的反响。但是接下来的事情就不是那么顺利了。

<强> 2019.11.14

时间到了2019.11.14。

这天,官方又发了个通知。

先说了Spring Security OAuth在迁往春天Security5。x的过程非常顺利,大部分迁移工作已经完成了,剩下的将在5.3版本中完成迁移,在迁移的过程中还添加了许多新功能,包括对OpenID Connect1.0的支持

接下来话锋一转,说了一件很多人难以接受的事情,那就是将不再提供对授权服务器的支持(要是小伙伴们不懂什么是授权服务器,可以在公众号江南一点雨后台回复<代码> OAuth3>

不提供的原因,官方给了两个:

在2019年,将有大量的商业和开源授权服务器可用。授权服务器是使用一个库来构建产品,而Spring Security作为框架,并不适合做这件事情。

一石激起千层浪,许多开发者表示对此难以接受。这件事也在春社区引发了激烈的讨论,好在春官方愿意倾听来自社区的声音。

<强> 2020.04.15

这天,官方又发了个通知。

这次宣布了春天授权服务器项目。这是一个由Spring Security团队领导的社区驱动的项目,致力于向春社区提供授权服务器支持。

Spring Security OAuth过期后怎么解决