• cas系列-cas登出(四)


    跟登陆一样,登出操作也很重要.由于是多应用间操作,状态保持也是一个要点,根据登出的影响范围,可以将登出操作分为两类:

    • 单应用登出
    • 单点登出(多应用登出)

    顾名思义,单应用登出即登出只影响被操作的应用会话,其他应用和CAS会话状态不受影响.这也就需要你退出每一个应用,如果应用数量较多,每次退出可能都是件力气活.单点登出是结束SSO会话,所有建立在SSO会话上的的应用会话都会进行登出.使用户的状态保持一致.当应用间会话记录不一致时,登出操作可能会造成会话记录丢失;

    • 登出操作:
    /logout?service=http://redirectUrl

    根据CAS协议,/logout终点可以销毁当前SSO回话.

    根据重定向配置的不同,可以分为三种方式:

    第一种:全局重定向

      在cas的配置文件中,通过cas.logout.redirectUrl参数可以定义全局重定向地址.

    第二种:参数重定向

      通过service参数定义登出重定向地址,启用service参数需要在允许服务重定向,相关配置如下:

    cas.logout.followServiceRedirects=true 
    cas.logout.redirectParameter=service
    cas.logout.redirectUrl=https://www.github.com
    cas.logout.confirmLogout=false
    cas.logout.removeDescendantTickets=true

    第三种:服务级别重定向

      在注册服务中定义logoutUrl参数进行定义重定向地址;

    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "testId",
      "name" : "testId",
      "id" : 1,
      "logoutType" : "BACK_CHANNEL",
      "logoutUrl" : "https://web.application.net/logout"
    }
    logoutType:分为FRONT_CHANNEL,BACK_CHANNEL
      FRONT_CHANNEL:显示登出.cas直接发送http post请求到服务;
      BACK_CHANNEL:隐式登出.cas发送异步ajax get请求到已认证服务.通过cas客户端使应用会话失效;

    • 关闭单点登出:

    需要在cas配置文件中增加如下配置,单点登出默认开启

    cas.slo.disabled=true
    cas.slo.asynchronous=true
    • SSO会话和应用会话

    SSO会话是CAS通过TicketGrantingTicket和TGC进行状态保持而建立的会话;

    应用会话:应用进行状态保持而建立的会话;

    CAS不是一个应用会话管理工具,应用会话管理应该是应用自身的职责.当认证工作完成之后,CAS就会退出整个业务逻辑,后续的功能应该是应用自身完成.

  • 相关阅读:
    调用其他类函数,且其他类函数使用自己脚本的成员变量的方法
    伟程君解决端口被占用问题(接口jmeter 本地端口被占用完了,jmeter报错的问题)(亲测是可以的)
    JMeter 使用 http长连接的方法
    解决端口被占用问题(端口timewait)
    光辉岁月吉他指弹
    Jmeter获取 json字符的另外一种写法
    Jmeter-Critical Section Controller(临界区控制器)(还没看,是一个控制请求按顺序执行的东东)
    wrk一个能做模拟高并发请求的东东
    017-mac下project
    016-mac下ps
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/10051305.html
Copyright © 2020-2023  润新知