shiro、cas、pac4j 实现单点登陆
2020-06-11 本文已影响0人
平凡人笔记
前言
上一篇文章介绍了 cas 环境搭建过程
本文介绍下cas和shiro集成代码实现及数据流转过程简介
先看下实现的效果
访问 http://localhost:8086/demo1
转发到认证中心
输入登陆账号
回到demo1页面
再次访问 http://localhost:8086/demo1 直接会跳转到 demo1页面
点击退出
项目启动[按照运行顺序]
实例化 LifecycleBeanPostProcessor bean生命周期管理类
添加注解支持 并强制使用cglib动态代理
使用 pac4j 的 subjectFactory
初始化cookie
初始化session
初始化 sessionManager
初始化CasRealm认证与授权
初始化 securityManager 并设置 sessionManager subjectFacotry和CasRealm
设置cas Server配置
设置cas 客户端配置
设置session shiro存储
设置pac4j配置 并设置 cas 客户端和sessionshiro存储
shiro 相关配置
加载shiro过滤器的权限规则配置
初始化 AuthorizationAttributeSourceAdvisor 并设置 securityManager
将过滤器注册
访问过程数据流转[按照运行顺序]
访问 http://localhost:8086/demo1
获取重定向处理的action
然后跳转到了认证中心的页面
输入登陆账号
登陆成功会回调到demo1项目
解析认证中心返回的信息
然后返回到demo1的首页
点击退出
查看demo1的日志
o.p.cas.logout.DefaultCasLogoutHandler : No trackable session found for back channel logout. Either the session store does not support to track session or it has expired from the store and the store settings must be updated (expired data)
调用了 casLogout的Handler处理类
代码资源
https://gitee.com/pingfanrenbiji/cas-shiro-springboot-demo.git