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" : ,
"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就会退出整个业务逻辑,后续的功能应该是应用自身完成.
cas系列-cas登出(四)的更多相关文章
- 源代码解读Cas实现单点登出(single sign out)功能实现原理
关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了解,在此就不再做具体介绍.如果不清楚的,那只能等我把single sign on这块整理 ...
- 源代码解读Cas实现单点登出(single sign out)功能实现原理--转
关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了解,在此就不再做具体介绍.如果不清楚的,那只能等我把single sign on这块整理 ...
- cas系列-cas REST协议(三)
cas的rest协议 cas还支持rest协议方式进行访问,格式和参数如下: 1. 获取TGT 请求方式,路径,http协议及请求参数: POST /cas/v1/tickets HTTP/1.0 u ...
- cas系列-cas server demo搭建(二)
一 部署简述 cas server官方推荐采用overlay方式进行部署,通过替换自定义文件,减少项目文件改动,以简化开发和部署,这个有点类似于项目上直接替换java的class文件,由于和git的搭 ...
- CAS单点登出的原理
单点登出功能跟单点登录功能是相对应的,旨在通过Cas Server的登出使所有的Cas Client都登出. Cas Server的登出是通过请求“/logout”发生的,即如果你的Cas Serve ...
- Cas(08)——单点登出
单点登出 目录 1.1 Cas Client端配置单点登出 1.2 Cas Server端禁用单点登出 1.1 Cas Client端配置单点登出 单点登出功能跟单点登录功能是 ...
- cas sso单点登录 登录过程和登出过程原理说明
CAS大体原理我就不说了,网上一大把,不过具体交互流程没说清楚,所以有这篇文章,如果有错误,请多多指教 登录过程 用户第一次访问一个CAS 服务的客户web 应用时(访问URL :http://192 ...
- CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...
- phpCAS::handleLogoutRequests()关于java端项目登出而php端项目检测不到的测试
首先,假如你有做过cas,再假如你的cas里面有php项目,这个时候要让php项目拥有cas的sso功能,你需要改造你的项目,由于各人的项目不同,但是原理差不多,都是通过从cas服务器获取sessio ...
随机推荐
- 【已解决】老型号电脑需要按F1键才能进入系统
[已解决]老型号电脑需要按F1键才能进入系统 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Tue, 16 Jul 2019 20:49:00 +0800 问题描述:电脑因 ...
- HTTP协议的详解
[HTTP协议的详解] Ø 请求部分 * 请求行 * 提交方式: * 提交方式有很多,常用的GET和POST: * GET和POST的区别: * GET的提交的参数会显示到地址栏上,而POST不显示. ...
- 【前端开发】】js中var写和不写的区别
js中var用与不用的区别 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的.可以正常运行的代码并不代表是合适的代码. v ...
- java网络编程--httpurlconnection
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现.如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行.可以通过以下两个语句来 ...
- Linux之mysql的安装与,主从设置
一,MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL ...
- CentOS7.X版本系统的下载和安装
一.下载CentOS镜像 1.打开浏览器输入centos.org 2.选择版本下载 3.进入下载页面选择下载版本的种子链接,在迅雷下载即可. 二安装CentOS系统 1.服务器开机,根据界面提示进入磁 ...
- DNS服务——域名解析转发 和 条件转发
前言 有一台Linux机器作为DNS服务器,查看这台机器上的DNS文件,发现指向互联网上的DNS服务器. [root@ziqiang named]# cat /etc/resolv.conf # Ge ...
- JS获取当前月份的最后一天
<button onclick="function_name()">获取当前月份的最后一天</button> <script type="t ...
- 【转】provisional headers are shown 知多少
前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的.如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭.网上大部分都 ...
- 基于STM32L476开发板的USB音频设备
现代音频设备中有很多知识产权. 我想研究创建一个与手机交互的算法设备(运行non-trivial算法的嵌入式设备). 我发现创建一个Lightning设备比创建一个连接到Android手机的的USB设 ...