用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面.
用了CAS,发现退出真是个麻烦事,退出后跳转到了CAS的注销页面,而且不关闭浏览器的话,其实并没有真的退出,输入地址仍是登陆状态。为了实现退出后登陆到跳转页面,做了以下配置:
1.server 端
修改src\main\webapp\WEB-INF\cas-servlet.xml里的logoutController
增加p:followServiceRedirects="true"使支持logout输入service参数为跳转路径。
- <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:followServiceRedirects="true"
- />
2.客户端
web.xml 中在登录的filter之前增加
- <!-- 填写退出的URL -->
- <context-param>
- <param-name>casServerLogoutUrl</param-name>
- <param-value>http://10.1.83.34:8080/cas/logout</param-value>
- </context-param>
- <!--单点退出配置-->
- <listener>
- <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
- </listener>
- <filter>
- <filter-name>CAS Single Sign Out Filter</filter-name>
- <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>CAS Single Sign Out Filter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
在JSP中,如果直接把退出转到cas/logout之后,会跳转到CAS的注销页面,这个情况下,如果直接点击浏览器的回退按钮,发现仍然可以正常操作,也就是session并没有被注销掉,可能CAS的logout只是去掉了TGT吧。
为了解决这个问题,我只好重新写了个JSP,退出按钮跳转到这个JSP,这个JSP里先注销session, 然后再跳转到CAS的退出,并增加service参数,使跳转到登陆页面。
- <a
- href="${pageContext.request.contextPath}/web-root/include/logout.jsp" ></a>
- <div id="box_T5" class="toptaps5">退出登录</div>
logout.jsp内容:
- <body>
- <%
- session.invalidate();
- response.sendRedirect(application
- .getInitParameter("casServerLogoutUrl")
- + "?service="
- + application.getInitParameter("serverName") + "/myweb");
- %>
- </body>
经过测试,可以实现所要的功能。
相关推荐
SSO之CAS单点登录详细教程.docx
SSO(Single Sign-On)单点登录是一种网络身份验证机制,允许用户在多个相互关联的应用系统之间共享登录状态,只需一次登录即可访问所有系统。在这个详细的CAS(Central Authentication Service)单点登录教程中,...
本教程将通过“SSO之CAS单点登录详细图文教程.zip”这个压缩包,详细介绍如何部署CAS(Central Authentication Service)来实现SSO。 首先,让我们了解CAS的基本架构。CAS通常包括两个主要部分:服务端和客户端。...
综上所述,SSO之CAS单点登录提供了一种高效、安全的身份验证解决方案,简化了用户访问多应用的流程,同时也便于管理员管理和监控用户行为。对于大型组织,采用CAS进行SSO集成可以显著提升用户体验并加强信息安全。在...
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...
SSO之CAS单点登录实例演示
在"SSO之CAS单点登录客户端服务端jar包"中,包含的是实现CAS单点登录功能所需的客户端和服务端组件。这些jar包包含了以下关键知识点: 1. **CAS服务器**:这是整个SSO架构的核心,负责处理用户的登录请求,验证凭证...
SSO(Single Sign-On)是单点登录的缩写,是一种网络用户身份验证的机制,允许用户在一次登录后访问多个应用系统而无需再次验证。CAS(Central Authentication Service)是SSO的一种实现,由耶鲁大学开发并开源,它...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个例子中,我们基于Spring MVC、Maven、WebService和Memcached来实现一个功能完善的...
[置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...
本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单点登录和单...
### 用CAS实现框架的SSO单点登录 #### SSO单点登录概念与原理 SSO(Single Sign-On)即单点登录技术,是一种让用户只需登录一次即可访问多个关联应用的技术。它不仅提升了用户体验,同时也加强了系统的安全性。...
本源码集合为一个简单的Java实现的SSO CAS单点登录示例,适合初学者理解和实践SSO原理。 首先,我们需要理解SSO的基本流程: 1. 用户尝试访问受保护的应用A。 2. 应用A发现用户未登录,重定向到CAS服务器的登录页面...
### SSO之CAS单点登录详细教程 #### 一、简介 SSO(Single Sign-On)即单点登录,是一种用户认证机制,允许用户在多个应用程序和服务之间仅使用一次登录凭据进行身份验证。CAS(Central Authentication Service)是...
此文档自己亲手从0开始一步一步配置的详尽过程,其中包括keytool创建 、ticket、tomcat配置cas、自定义登录页面,处理服务器返回的乱码,服务退出、cas服务器返回多数据等等文档 包括SSO原理图,以及认证流程图等
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源身份验证框架,旨在提供一种安全的单点登录(Single Sign-On,SSO)解决方案。SSO允许用户通过一次登录,就能访问多个相互信任的应用系统...
CAS(Central Authentication Service),即中央认证服务,是由耶鲁大学的信息技术服务中心(ITS)开发的一套用于实现单点登录(Single Sign-On, SSO)功能的开源框架。CAS通过为用户提供一个集中的身份验证机制来...
CAS(Central Authentication Service)是一种广泛使用的开放源代码单点登录(Single Sign-On,SSO)框架,它允许用户通过一个中央认证服务访问多个应用系统,而无需为每个系统单独进行登录。在实际的企业环境中,...