博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cas系列-cas登出(四)
阅读量:6678 次
发布时间:2019-06-25

本文共 1323 字,大约阅读时间需要 4 分钟。

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

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

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

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

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

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

第一种:全局重定向

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

第二种:参数重定向

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

cas.logout.followServiceRedirects=true cas.logout.redirectParameter=servicecas.logout.redirectUrl=https://www.github.comcas.logout.confirmLogout=falsecas.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=truecas.slo.asynchronous=true

 

  • SSO会话和应用会话

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

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

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

转载于:https://www.cnblogs.com/chengmuyu/p/10051305.html

你可能感兴趣的文章
Springmvc+mybatis+restful+bootstrap框架整合
查看>>
ubuntu下rsync服务器端和客户端的配置
查看>>
UNIX/Linux 系统管理技术手册阅读(八)
查看>>
LINUX 软件安装。
查看>>
linux 批量文件重命名
查看>>
javascript使用xml 数据岛 简单实例
查看>>
Ubuntu 16.04安装Cobbler 2.9
查看>>
源码编译安装mysql-5.7.14
查看>>
CentOS6.7 DNS配置
查看>>
vRealize Operations Manager 6.5的安装与配置
查看>>
老舍|回忆初恋,只一眼就一生
查看>>
ip--lftp
查看>>
服务器端控件使用JQuery
查看>>
winform编程中鼠标坐标
查看>>
GO语言struct语法
查看>>
python读取excel表格的数据
查看>>
数据库多张表导出到excel
查看>>
中国医疗体系未来在哪?信息互通、智慧医疗将是重点
查看>>
centos 6.9安装jira 7.6.0
查看>>
ETag应用
查看>>