文档章节

CAS单点登出实现案例

Pig-man
 Pig-man
发布于 2016/12/10 09:39
字数 362
阅读 517
收藏 0

单点登出的实现比较简单,就是简单的几个配置。

如果直接调用cas的logout的url进行登出,则会暴露cas的登出界面

显然这不是我们想要的,通常登出的需求是:退出当前账户,然后将url重定向到登录界面。

于是我用了一个蠢笨的方式来实现:

干货模式开启:

1、在页面的退出按钮下的function

   function fn_logout(){
	  
       $.ajax({
           url:"../user/logout",
           type:'post'
       });
       window.location.href="https://cas.demo.com:8443/cas/logout?service=http://127.0.0.1:8089/portal/user/login";
   }

老规矩,贴图片详解

2、然后我把Controller里的logout方法贴出来

@RequestMapping("logout")
	public void logout(HttpSession session) {
        //清楚session相关记录
		session.removeAttribute("admin");
        session.removeAttribute(com.common.util.SessionListener.LISTENER_NAME);
	}

3、进行cas服务器配置文件的修改  cas\WEB-INF\cas-servlet.xml

  <bean id="logoutController" class="org.jasig.cas.web.LogoutController"
        p:centralAuthenticationService-ref="centralAuthenticationService"
        p:logoutView="casLogoutView"
        p:warnCookieGenerator-ref="warnCookieGenerator"
        p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
        p:servicesManager-ref="servicesManager"
        p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>

注意最后一行的p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"原本属性为false。

意思是:成功Logout后,如果包含Service参数,则重定向到Service指定的网址。

这样就可以在页面logout的时候,同时清理掉当前用户的session,又redirect到当前系统的登录界面,从而省去了caslogout页面的修改或单纯的实现:登出后释放当前用户的session,跳转到系统登录界面。

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
Pig-man
粉丝 19
博文 62
码字总数 47800
作品 0
青浦
程序员
私信 提问
CAS 4.1.x 单点登出(退出登录)的原理解析

我们在项目中使用了cas作为单点登录的解决方案,当在集成shiro做统一权限控制的时候,发现单点退出登录有坑,所以啃了一下CAS的单点登出的源码,在此分享一下。 1、回顾单点登录中一些关键事...

细肉云吞
2017/07/19
0
0
java的cas单点登录框架的问题

我做开发时碰到了一个问题,cas单点登录在同一个域名不同的应用中可以正常登录,但是不能单点登出。 我这个项目的要求是所有的模块应用的域名端口必须统一,二级域名也要全部一致,这是第一条...

學楽
2017/07/11
369
3
cas+shiro+redis实现单点登出

@狂妄天生 你好,想跟你请教个问题:我现在用cas+shiro+redis 做单点登出的时候遇到了,跟你之前一样的问题,由于我的session是放在redis中管理里的,cas单点登出的时候,清除的session只是标...

幸福丶
2017/03/20
663
3
单点登录 CAS4.0 服务器端配置

CAS 介绍 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登...

deepler
2016/07/22
133
0
关于cas单点登录的问题

客户端项目配置cas后,访问所有内容都必须在登录的前提下,如果想不登陆也能访问,只在用户点击登陆或者访问某些特殊内容才跳转到登录该怎么做 cas-server-3.5.2.1 和 cas-client-3.2.1 客户...

白小衣
2014/08/23
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

linux脚本中父shell与子shell 执行的几种方式

本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell 1. source filename or . filename 不创建sub...

问题终结者
11分钟前
1
0
git简单操作

1、 git init 初始化仓库 git add 1.txt 添加文件 git commit -m ”commit” 提交更新,添加注释 git status 查看仓库状态 git log 查看日志 //修改文件后提交更新 git diff 查看有哪些修改 ...

xiaobai1315
16分钟前
1
0
基于vue的Element-ui定义自己的select组件

基于vue的Element-ui定义自己的select组件 <template> <div> <el-select v-model="svalue" placeholder="请选择" filterable> <el-option v-for="item in options"......

莫沫达
18分钟前
1
0
对象检测(object detection)算法图解

摘要: 本文简要介绍图像检测中常用的深度学习方法——RCNN家族系列算法,以图像讲解形式,便于理解。 在生活中,经常会遇到这样的一种情况,上班要出门的时候,突然找不到一件东西了,比如钥...

阿里云官方博客
19分钟前
1
0
计算机通信协议学习-Http

HTTP协议: 引用:http://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web)服务...

xiaoyaoyoufang
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部