专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

shiro、cas、pac4j 实现单点登陆

前言

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

先看下实现的效果

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

70_1.png

输入登陆账号
回到demo1页面

70_2.png

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

70_3.png

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

70_4.png

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

70_5.png

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

70_6.png

使用 pac4j 的 subjectFactory

70_7.png

初始化cookie

70_8.png

初始化session

70_9.png

初始化 sessionManager 

70_10.png

初始化CasRealm认证与授权 

70_11.png

初始化 securityManager 并设置 sessionManager subjectFacotry和CasRealm

70_12.png

设置cas Server配置

70_13.png

设置cas 客户端配置

70_14.png

设置session shiro存储

70_15.png

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

70_16.png

shiro 相关配置

70_17.png

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

70_18.png

初始化 AuthorizationAttributeSourceAdvisor  并设置 securityManager

70_19.png

将过滤器注册

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

访问 http://localhost:8086/demo1

70_20.png

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

70_21.png70_22.png

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

70_23.png

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

70_24.png

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

70_25.png

代码资源

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

本文使用 tech.souyunku.com 排版

文章永久链接:https://tech.souyunku.com/31980

未经允许不得转载:搜云库技术团队 » shiro、cas、pac4j 实现单点登陆

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们