当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

CAS logout 解决方案

发表于: 2011-05-23   作者:baalwolf   来源:转载   浏览次数:
摘要: CAS logout的时候,默认是会重定向到cas server端的logout页面。 现在的需求是重定向到登录页面。 在应用中, 我还遇到直接ogout(只做清空session, cookie), 而不去重定向到cas 的logout页面,这种情况下: 如果不关闭浏览器, 直接再次输入Application的URL, 会绕过CAS认证,照常登入。     吃问题困

CAS logout的时候,默认是会重定向到cas server端的logout页面。

现在的需求是重定向到登录页面。

在应用中, 我还遇到直接ogout(只做清空session, cookie), 而不去重定向到cas 的logout页面,这种情况下:

如果不关闭浏览器, 直接再次输入Application的URL, 会绕过CAS认证,照常登入。

 

 

吃问题困扰了几天,看了一下CASserver端的代码,恍然大悟:

LogoutController有一个开关变量:

 

Java代码
  1. private boolean followServiceRedirects;  

 

 

并有一段逻辑:

 

Java代码
  1. if (this.followServiceRedirects && service != null) {  
  2.     return new ModelAndView(new RedirectView(service));  
  3. }  

 

service是个啥:

 

Java代码
  1. final String service = request.getParameter("service");  

 

 

如果在logout的url后面加上你要重定向的那个页面, 就可以自定义登出页面了:

所以,我的方案就出来了:

 

在cas-servlet.xml中,设置logoutController的followServiceRedirects=true

 

Xml代码
  1. <bean id="logoutController" class="org.jasig.cas.web.LogoutController"  
  2.     p:centralAuthenticationService-ref="centralAuthenticationService"  
  3.     p:logoutView="casLogoutView"  
  4.     p:warnCookieGenerator-ref="warnCookieGenerator"  
  5.     p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"   
  6.     p:followServiceRedirects="true"/>  

application在登出的时候,除了清空session和cookie外, 重定向的url加上:

 

Java代码
  1. var apphostname = window.location.hostname  
  2. var appport = window.location.port;  
  3.   
  4. var callbackurl='?service=http%3A%2F%2F'+apphostname +'%3A'+appport + '%2Fapplication'  
Java代码
  1. window.location = logoutUrl+ callbackurl;  

CAS logout 解决方案

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了
关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了
「个人学习记录,肯定有理解错误和理解不透的地方,小白总是有个成长的过程,希望大家多多指教。」
「个人学习记录,肯定有理解错误和理解不透的地方,小白总是有个成长的过程,希望大家多多指教。」
最近的任务是整理和优化公司一个项目的登录和权限部分,项目大大小小有10几个子系统必然涉及到SSO,项
「个人学习记录,肯定有理解错误和理解不透的地方,小白总是有个成长的过程,希望大家多多指教。」
电商平台中无论是前端还是后端会存在大量的业务应用,在整个交易的过程中请求是在各个业务应用中流
电商平台中无论是前端还是后端会存在大量的业务应用,在整个交易的过程中请求是在各个业务应用中流
电商平台中无论是前端还是后端会存在大量的业务应用,在整个交易的过程中请求是在各个业务应用中流
电商平台中无论是前端还是后端会存在大量的业务应用,在整个交易的过程中请求是在各个业务应用中流
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号