最近一段时间,大家在用 Spring Security OAuth2 时可能发现有很多类过期了。 大家在选择 OAuth2 依赖的时候,可能也会困惑,有好几个地方都可以选: 那么到底选择哪一个依赖合适呢?这不同的依赖又有什么区别?今天松哥就来和大家聊一聊 Spring Security 中关于 OAuth2 的恩怨。 前言 先来大致介绍一下 OAuth2 在 Spring 框架中的发展历程。 大约十年前,Spring 引入了一个社区驱动的开源项目 Spring Security OAuth,并将其纳入 Spring 项目组合中。到今天,它已经发展成为一个成熟的项目,可以支持大部分 OAuth 规范,包括 资源服务器 、 客户端 和 授权服务器 等。 现在它已成为 UAA(User Account and Authentication Server) 的基础。Spring Security OAuth 项目已成为一个样板项目,它证明了 Spring 社区可以出色的完成工作。 然而早期的项目存在这样一些问题: OAuth 是在很早的时候完成的,开发者无法预料未来的变化以及这些代码到底要被怎么用,导致很多 Spring 项目提供了自己的 OAuth 支持,这就带来了 OAuth2 支持的碎片化。 最早的 OAuth 项目同时支持 OAuth1.0 和 OAuth2.0,现在 OAuth1