领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我很高兴地宣布 Spring Authorization Server 项目。这是一个由 Spring Security 团队领导的社区驱动项目,专注于为 Spring 社区提供 授权服务器 支持。
我们走到今天的历程很长,但关键点却简短而甜蜜:没有我们令人惊叹的社区,Spring 不会是今天的模样。
大约十年前,我们引入了社区驱动的开源项目 Spring Security OAuth,并将其纳入 Spring 项目组合。自成立以来,它已发展成为一个成熟的项目,支持 OAuth 规范的很大一部分,包括资源服务器、客户端、登录和授权服务器。难怪它已成为 UAA 的基础,UAA 除其他外,还充当所有 Cloud Foundry 安装的身份管理服务。Spring Security OAuth 项目已成为一个典范项目,证明了我们优秀的社区能够取得的成就。
自项目启动以来,OAuth 世界发生了重大变化。因此,我们决定在社区成功的基础上,重写 Spring Security OAuth 以更好地协调 Spring 的 OAuth 故事,简化代码库,并使 Spring 的 OAuth 支持更灵活。
首先,最初的 OAuth 支持是在非常早期完成的,无法预料到它需要使用的所有不同方式。这导致许多 Spring 项目提供了自己的 OAuth 支持。通过重写,我们能够满足整个 Spring 产品组合的需求,并提供单个一致的 OAuth 库。
其次,最初编写 OAuth 项目时,它同时支持 OAuth 1.0 和 OAuth 2.0。从那时起,OAuth 2.0 已正式使 OAuth 1.0 过时。因此,新的支持能够完全专注于 OAuth 2.0,这大大简化了代码。
第三,最初的项目提供了所有自己的库支持。现在,有很多库可供选择,我们能够通过围绕名为 Nimbus 的现有库提供抽象来将其整合到 Spring Security 中。通过构建在 Nimbus 之上,我们能够更快地移动并添加更多功能,例如对 JWT 声明、OIDC、响应式编程等的更好支持。
社区如何持续在其过去的成功之上继续建设令人印象深刻。
显然,重写 Spring Security 的 OAuth 支持是一项艰巨的任务。首先,团队决定将工作分成客户端、资源服务器和授权服务器。随着我们对客户端和资源服务器的进展,我们越来越相信我们不应该提供授权服务器支持。
自从创建 Spring Security OAuth 项目以来,授权服务器的选择数量显著增加。此外,我们不认为创建授权服务器是一种常见场景。我们也不认为在没有库支持的框架中提供授权支持是合适的。经过仔细考虑,Spring Security 团队决定我们 不会正式支持创建授权服务器。
自从我们的博客文章发表以来,社区发表了意见,我们也倾听了。从博客上的反馈、Gitter 上的讨论和 GitHub 上的评论来看,我们收到了一个一致的信息:Spring 生态系统需要授权服务器的支持。
直到这一刻,Spring Authorization Server 只是一个想法。现在,我们想正式将 Spring Authorization Server 作为一个由 Spring Security 团队领导的社区驱动项目。
该项目将作为独立项目从 Spring 的实验项目开始,以便它可以更快地发展。在您的帮助下,该项目将与最初的 Spring Security OAuth 项目一样发展壮大。
我们非常乐意邀请您加入我们的旅程。如果您想参与其中,请阅读 CONTRIBUTING 文档。我们迫不及待地想听到您的声音,并且一如既往地感谢您成为 Spring 社区的一员!