CAS单点登出实现案例
2016-12-10 00:00
10 查看
摘要: 上篇文章将单点登录实现,接下来我们看一下单点登出
单点登出的实现比较简单,就是简单的几个配置。
如果直接调用cas的logout的url进行登出,则会暴露cas的登出界面
![](https://static.oschina.net/uploads/img/201704/07151550_QkqO.jpg)
显然这不是我们想要的,通常登出的需求是:退出当前账户,然后将url重定向到登录界面。
于是我用了一个蠢笨的方式来实现:
干货模式开启:
1、在页面的退出按钮下的function
老规矩,贴图片详解
![](https://static.oschina.net/uploads/space/2016/1210/092842_4t0M_697871.png)
2、然后我把Controller里的logout方法贴出来
3、进行cas服务器配置文件的修改 cas\WEB-INF\cas-servlet.xml
注意最后一行的p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"原本属性为false。
意思是:成功Logout后,如果包含Service参数,则重定向到Service指定的网址。
这样就可以在页面logout的时候,同时清理掉当前用户的session,又redirect到当前系统的登录界面,从而省去了caslogout页面的修改或单纯的实现:登出后释放当前用户的session,跳转到系统登录界面。
单点登出的实现比较简单,就是简单的几个配置。
如果直接调用cas的logout的url进行登出,则会暴露cas的登出界面
![](https://static.oschina.net/uploads/img/201704/07151550_QkqO.jpg)
显然这不是我们想要的,通常登出的需求是:退出当前账户,然后将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"; }
老规矩,贴图片详解
![](https://static.oschina.net/uploads/space/2016/1210/092842_4t0M_697871.png)
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,跳转到系统登录界面。
相关文章推荐
- CAS单点登出实现同帐号当前登录成功踢出前一登录终端
- Hibernate继承映射--每个类一个数据表的实现案例
- 用VB和SQL Server实现文件上传(方案例)
- EOS案例实现HelloWorld
- OpenCV编程案例:最大熵阈值分割算法实现
- C++ primer第四版15.9节案例吐血实现
- Microsoft Dynamics CRM实现矩阵式管理案例
- 一个简单的实现企业外部邮件收发的案例
- SQL Server 2000实现一则按类似VB VAL函数功能排序的案例
- 一个表达式计算案例的设计和实现
- 基于的Swing图形界面开发工具的实现案例(转自WilliamChen)
- 案例:一个系统功能实现方式引发的隐形需求
- 高级软件架构设计实现及案例解析
- C#远程调用实现案例
- 一个表达式计算案例的设计和实现!〈转贴〉
- 2403H-EI pvlan功能实现典型案例
- 一种AOP后置通知的Spring实现案例--密码生成器校验
- Subversion实践案例——以只读方式实现对配置库内容的调阅
- RHEL4.0下实现vsftpd、典型案例、虚拟用户设置