文章目录

  • 一、什么是 Spring Security?
  • 二、为什么需要oAuth2 ?


一、什么是 Spring Security?

Spring Security 是一个安全框架,前身是 Acegi Security,能够为 Spring 企业应用系统提供声明式的安全访问控制 (对访问权限进行控制)。应用的安全性包括以下两点:

用户认证(Authentication):系统通过校验用户名和密码来完成认证过程
用户授权(Authorization):指的是验证某个用户是否有权限执行某个操作

Spring Security 基于 FilterIoCAOP,为 Web 请求和方法调用提供身份确认和授权处理 (对Web资源进行保护),避免了代码耦合,减少了大量重复代码工作。

二、为什么需要oAuth2 ?

百度网盘 (视频模块、图片模块…) 相信大家都用过,以前对用户访问资源的解决方案就是提供自己的账号和密码给百度网盘,登录成功可获取资源。传统做法的几个问题:

  • 在微服务架构下,服务分开部署,请求不同服务分别登陆麻烦吗?
  • 在第三方应用程序登陆(qq、新浪 )百度网盘,想不想提供账号密码给第三方?
  • 用户修改密码,第三方程序记录的密码全部失效怎么办?
  • 第三方程序容易泄露隐私怎么办?

oAuth 在 “百度网盘(客户端)” 与 “百度(服务提供商)” 之间,设置了一个授权层(authorization layer)。“客户端” 不能直接登录 “服务提供商”,只能登录授权层,以此将用户与客户端区分开来。

“客户端” 登录授权层所用的令牌(比如cookie中的key),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。“客户端” 登录授权层以后,“服务提供商” 根据令牌的权限范围和有效期,向 “客户端” 开放用户储存的资料。

spring oauth2 锁定 spring security oauth2原理_spring oauth2 锁定

所以,oAuth是标准,SpringSecurity是实现(Serio也是)

综合案例:SpringSecurity oAuth2+ SpringCloud Gateway + Redis + 第三方登录