0
点赞
收藏
分享

微信扫一扫

shiro、cas、pac4j 实现单点登陆

前言

上一篇文章介绍了 cas 环境搭建过程
本文介绍下cas和shiro集成代码实现及数据流转过程简介

先看下实现的效果

访问 http://localhost:8086/demo1
转发到认证中心

shiro、cas、pac4j 实现单点登陆_客户端

输入登陆账号
回到demo1页面

shiro、cas、pac4j 实现单点登陆_初始化_02

再次访问 http://localhost:8086/demo1 直接会跳转到 demo1页面

点击退出

shiro、cas、pac4j 实现单点登陆_git_03

项目启动[按照运行顺序]

shiro、cas、pac4j 实现单点登陆_git_04

实例化 LifecycleBeanPostProcessor bean生命周期管理类

shiro、cas、pac4j 实现单点登陆_git_05

添加注解支持 并强制使用cglib动态代理

shiro、cas、pac4j 实现单点登陆_git_06

使用 pac4j 的 subjectFactory

shiro、cas、pac4j 实现单点登陆_初始化_07

初始化cookie

shiro、cas、pac4j 实现单点登陆_初始化_08

初始化session

shiro、cas、pac4j 实现单点登陆_初始化_09

初始化 sessionManager

shiro、cas、pac4j 实现单点登陆_git_10

初始化CasRealm认证与授权

shiro、cas、pac4j 实现单点登陆_初始化_11

初始化 securityManager 并设置 sessionManager subjectFacotry和CasRealm

shiro、cas、pac4j 实现单点登陆_客户端_12

设置cas Server配置

shiro、cas、pac4j 实现单点登陆_初始化_13

设置cas 客户端配置

shiro、cas、pac4j 实现单点登陆_git_14

设置session shiro存储

shiro、cas、pac4j 实现单点登陆_git_15

设置pac4j配置 并设置 cas 客户端和sessionshiro存储

shiro、cas、pac4j 实现单点登陆_初始化_16

shiro 相关配置

shiro、cas、pac4j 实现单点登陆_客户端_17

加载shiro过滤器的权限规则配置

shiro、cas、pac4j 实现单点登陆_git_18

初始化 AuthorizationAttributeSourceAdvisor  并设置 securityManager

shiro、cas、pac4j 实现单点登陆_初始化_19

将过滤器注册

访问过程数据流转[按照运行顺序]

访问 http://localhost:8086/demo1

shiro、cas、pac4j 实现单点登陆_git_20

获取重定向处理的action
然后跳转到了认证中心的页面

shiro、cas、pac4j 实现单点登陆_客户端_21shiro、cas、pac4j 实现单点登陆_客户端_22

输入登陆账号
登陆成功会回调到demo1项目

shiro、cas、pac4j 实现单点登陆_客户端_23

解析认证中心返回的信息
然后返回到demo1的首页

shiro、cas、pac4j 实现单点登陆_git_24

点击退出
查看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处理类

shiro、cas、pac4j 实现单点登陆_初始化_25

代码资源

https://gitee.com/pingfanrenbiji/cas-shiro-springboot-demo.git


举报

相关推荐

0 条评论