zoukankan      html  css  js  c++  java
  • 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、资源服务器返回受保护资源
    资源服务器校验令牌的合法性,如果合法则向用户响应资源信息内容。

     

  • 相关阅读:
    BZOJ 4805: 欧拉函数求和 杜教筛
    BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
    BZOJ 2693: jzptab 莫比乌斯反演 + 积性函数 + 筛法
    BZOJ 2154: Crash的数字表格 莫比乌斯反演
    BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂
    BZOJ 3595: [Scoi2014]方伯伯的Oj Splay + 动态裂点 + 卡常
    GitHub的使用
    Selenium模块的安装
    关于__new__和__init__
    博客一键保存本地exe可视化界面文件
  • 原文地址:https://www.cnblogs.com/xiluhua/p/14197543.html
Copyright © 2011-2022 走看看