SpringSecurity 原理(二)

感谢黑马程序员!http://www.itheima.com/

Oauth2.0 提供的认证授权模式:

1. 授权码模式

2. 密码模式

3. 客户端模式

4. 简化模式

 资源地址和权限,什么时候初始化到 spring 容器中的?借助:DefaultSingletonBeanRegistry

初始化 beanName:springSecurityFilterChain 时
存入 DefaultFilterInvocationSecurityMetadataSource 的 requestMap

如图:

 分布式认证授权方案:OAuth2.0

springboot-security 基本搭建:

 

 

 

 说明:

1、客户端请求第三方授权 
用户进入黑马程序的登录页面,点击微信的图标以微信账号登录系统,用户是自己在微信里信息的资源拥有者。
点击“微信”出现一个二维码,此时用户扫描二维码,开始给黑马程序员授权。
2、资源拥有者同意给客户端授权 
资源拥有者扫描二维码表示资源拥有者同意给客户端授权,微信会对资源拥有者的身份进行验证, 验证通过后
,微信会询问用户是否给授权黑马程序员访问自己的微信数据,用户点击“确认登录”表示同意授权,微信认证
服务器会 颁发一个授权码,并重定向到黑马程序员的网站。
3、客户端获取到授权码,请求认证服务器申请令牌
此过程用户看不到,客户端应用程序请求认证服务器,请求携带授权码。
4、认证服务器向客户端响应令牌
微信认证服务器验证了客户端请求的授权码,如果合法则给客户端颁发令牌,令牌是客户端访问资源的通行证。
此交互过程用户看不到,当客户端拿到令牌后,用户在黑马程序员看到已经登录成功。
5、客户端请求资源服务器的资源
客户端携带令牌访问资源服务器的资源。 黑马程序员网站携带令牌请求访问微信服务器获取用户的基本信息。
6、资源服务器返回受保护资源
资源服务器校验令牌的合法性,如果合法则向用户响应资源信息内容。

 

原文地址:https://www.cnblogs.com/xiluhua/p/14197543.html