Spring 对 OAuth2 的前世今生
这里将 OAuth2.0 单独作为一个主题讲解, 主要是在 Spring 架构体系中, 有多个模块都提供了 OAuth2.0 支持, 虽然官方已经发出声明,现有的这些模块都将进入维护模式, 由 Spring Security 5 统一提供 (官方自己弃坑了,又挖了新坑)
现有模块
-
org.springframework.social :
spring-social-xxxx
社交账号登录, 也就是第三方登录, 例如 微信, QQ, Github; 就是第三方应用提供了 oauth2 接口, 所以可以对接过来.
这里的xxx,代表官方提供的一个具体实现,例如 facebook 叫 spring-social-facebook, 国内的应用到很少, 可能是历史原因,对oauth2的实现或多或少的不怎么标准.所以官方不提供. -
org.springframework.security.oauth :
spring-security-oauth2
spring-security-oauth 项目(独立项目)的子模块, 提供资源服务器,认证服务器,客户端实现功能, 你可以用EnableResourceServer
搭建资源服务器,EnableAuthorizationServer
搭建认证服务器.EnableOAuth2Client
搭建客户端 (spring-social功能一样); -
org.springframework.security.oauth.boot :
spring-security-oauth2-autoconfigure
Spring Boot 自动装配spring-security-oauth2
, 使得spring-security-oauth2
简单上手使用, 提供EnableOAuth2Sso
可以快速开发基于 OAuth2 实现 SSO 登录. -
org.springframework.cloud:
spring-cloud-starter-oauth2
集成spring-security-oauth2-autoconfigure
, 固定版本号
集成spring-cloud-security
, 适配spring-security-oauth2
在 cloud 中使用, 例如 网关的适配, 服务间相互调用(负载均衡), 请求代理.
可以看出 [2], [3], [4] 具有包含关系, 而官方要停止维护的是 [2] spring-security-oauth2
...
>>点击阅读全文<<