1.单点登录流程

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

  1. 用户访问系统的受保护资源,系统发现用户未登录,跳转至认证中心,并将自己的地址作为参数
  2. sso认证中心发现用户未登录,将用户引导至登录页面
  3. 用户输入用户名密码提交登录申请
  4. sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
  5. sso认证中心带着令牌跳转最初的请求地址
  6. 系统拿到令牌,去sso认证中心校验令牌是否有效
  7. sso认证中心校验令牌,返回有效,注册系统1
  8. 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
  9. 用户访问系统2的受保护资源
  10. 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
  11. sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
  12. 系统2拿到令牌,去sso认证中心校验令牌是否有效
  13. sso认证中心校验令牌,返回有效,注册系统2
  14. 系统2使用该令牌创建与用户的局部会话,返回受保护资源
  15. sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作
  16. 用户向系统1发起注销请求
  17. 系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求
  18. sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址
  19. sso认证中心向所有注册系统发起注销请求
  20. 各注册系统接收sso认证中心的注销请求,销毁局部会话
  21. sso认证中心引导用户至登录页面

2.hashmap实现原理,红黑树删除数据后怎么调整的?
3.索引类型,sql优化?

索引种类:

普通索引:仅加速查询

唯一索引:加速查询 + 列值唯一(可以有null)

主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个

组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

全文索引:对文本的内容进行分词,进行搜索

sql优化:

4.如何查看索引有没有生效?

explain + select 语句

5.redis中存了那些数据?
6.springcloud有哪些组件?