美文网首页
shiro、cas、pac4j 实现单点登陆

shiro、cas、pac4j 实现单点登陆

作者: 平凡人笔记 | 来源:发表于2020-06-11 18:02 被阅读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

    相关文章

      网友评论

          本文标题:shiro、cas、pac4j 实现单点登陆

          本文链接:https://www.haomeiwen.com/subject/zkqitktx.html