`
endual
  • 浏览: 3566991 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CAS logout的一个解决方案

    博客分类:
  • java
 
阅读更多

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;  
分享到:
评论

相关推荐

    cas4.0.7+casClient示例(原生)

    在这个“cas4.0.7+casClient示例(原生)”中,我们将深入探讨如何配置和使用CAS 4.0.7版本与原生的CAS客户端进行集成,以及如何结合数据库实现完整的前后端解决方案。 **1. CAS 4.0.7简介** CAS 4.0.7是CAS服务器...

    cas实现单点登录,登出(java和php客户端)

    总之,CAS单点登录系统为多应用环境提供了一种高效的身份验证解决方案。通过Java和PHP客户端的集成,可以在多种技术栈的项目中实现一致的用户体验,同时也简化了用户管理和权限控制。在实际应用中,应根据项目需求...

    详解Django CAS 解决方案

    CAS是一个企业级的单点登录解决方案,允许用户仅登录一次,即可访问多个应用系统。以下详细知识点的介绍基于给定文件的信息: 知识点一:CAS单点登录的基本概念 CAS允许用户登录一次后访问多个应用系统,避免重复...

    CAS 协议3.0

    综上所述,CAS协议3.0通过其定义的各种URIs和实体,提供了一个全面的单点登录解决方案。它简化了用户登录流程,增强了用户和系统的安全认证,并且具有良好的扩展性,可适应不同的身份认证需求。开发者可以根据具体的...

    Cas入门demo以及SpringSecurity集成CasDemo

    **Cas入门及SpringSecurity集成CasDemo详解** CAS(Central Authentication Service)是一种开源的单点登录...对于大型企业级应用,这种SSO解决方案能够有效地简化用户认证流程,提高用户体验,同时确保系统安全。

    cas改改可以用了

    CAS(Central Authentication Service)是一种基于Web的单一登录(Single Sign-On, SSO)协议,它允许用户通过一个统一的身份验证入口点登录,然后在多个应用系统之间共享该身份验证信息,无需再次登录。"cas改改...

    Spring Security 3 与 CAS单点登录配置-Server

    Spring Security是Spring框架的一个模块,主要用于应用安全控制,而CAS则是一个开源的身份验证系统,可以提供跨多个应用的单一登录功能。 首先,理解SSO的概念至关重要。SSO允许用户在一次登录后访问多个相互信任的...

    Laravel开发-cas

    CAS(Central Authentication Service)是一个开源的SSO解决方案,由耶鲁大学开发并维护。它允许用户通过一个中央身份验证服务器对多个应用进行认证,从而简化登录过程,提高用户体验,并加强了系统安全性。 **2. ...

    Laravel开发-cas-server .zip

    通过以上步骤,你可以在 Laravel 框架下构建一个功能完备的 CAS 服务器,为你的应用提供高效、安全的单点登录解决方案。在实际开发过程中,你可能还需要根据具体需求对 CAS 服务器进行定制和扩展,例如添加多语言...

    比较详细的中文cas协议介绍

    CAS协议通过引入票证机制,实现了高效且安全的单点登录解决方案。它不仅简化了用户在多个服务间的认证过程,还提供了代理身份验证的功能,增强了跨服务的集成能力。对于企业级应用和服务平台而言,CAS协议是实现SOA...

    springsecurity整合cas全程

    此外,CAS 还支持 Proxy 模式,允许一个 CASClient 代表另一个 CASClient 或用户执行操作,进一步拓展了 CAS 的应用场景。 #### 二、CASServer 安装部署 ##### 2.1 准备工作 在部署 CASServer 之前,需要准备以下...

    shrio Cas 集成

    CAS 是一个开源的身份验证系统,广泛用于构建跨域和多应用的 SSO 解决方案。 集成 Shiro 和 CAS 可以帮助开发者轻松地在多个应用间共享用户身份信息,用户只需要登录一次就可以访问所有相互信任的应用,提高了用户...

    cas 和spring security 单点登录 配置

    总之,集成CAS和Spring Security可以为大型企业或组织提供便捷、安全的单点登录解决方案。在实际应用中,开发者需要对两者的配置、交互流程以及安全策略有深入理解,才能确保系统的稳定性和安全性。

    Java单点登录系统 JA-SIG CAS

    JA-SIG CAS(Central Authentication Service)是Java社区开发的一个开源项目,专门用于实现这种功能。CAS的目标是简化Web应用程序的安全管理,提供一个集中式的认证服务,从而减轻各个应用系统维护独立身份验证的...

    CAS+Shiro实现认证授权

    总结来说,Apache Shiro和CAS的结合使用为Java Web应用提供了一种强大、灵活的安全解决方案。Shiro处理应用内部的授权,而CAS则负责跨应用的统一认证,两者协同工作,可以构建出高效且安全的多应用环境。通过学习和...

    CAS客户端开发说明1

    【CAS客户端开发说明】这篇文档是关于如何进行CAS...总的来说,这个指南详细阐述了建立CAS客户端开发环境、配置、测试以及开发中的关键步骤,为开发者提供了一个清晰的流程,帮助他们理解和实现基于CAS的SSO解决方案。

    cas4.1.x集成.zip

    CAS(Central Authentication Service)是Java开发的一个开源身份验证框架,主要功能是为各种应用程序提供单一登录(Single Sign-On,简称SSO)服务。在CAS 4.1.x版本中,这个框架进行了许多改进和增强,旨在提高...

    统一身份认证平台集成接口文档.doc

    用户在登录后,CAS 服务器将生成一个ticket,该ticket 将被传递给相关系统或应用程序,以便验证用户的身份。 2. JAVA 语言 JAVA 是一种广泛使用的编程语言,具有强大的功能和灵活性。在 JAVA 中,可以使用 CAS ...

    单点登录sso的原理与java实现详细讲解与示例(文档与源码)

    单点登录(Single Sign-On...在Java环境下,Spring Security框架提供了一套完善的解决方案,包括配置CAS服务器、编写认证处理器、设置URL过滤器等步骤。通过学习和实践,开发者可以轻松地将SSO集成到自己的Java应用中。

Global site tag (gtag.js) - Google Analytics