用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之CAS单点登录详细教程+CAS服务端jar+CAS服务端应用+客户端jar
SSO之CAS单点登录详细图文教程,里面包含实现逻辑分析和流程介绍
SSO之CAS单点登录实例演示
SSO之CAS单点登录客户端服务端jar包,希望对你们有帮助。
sso/cas单点登录Java maven版 含服务端客服端
包含cas源码、cas使用说明文档(包含配置信息)、连接数据库所需jar包、cas服务端自定义返回值等
SSO之CAS单点登录详细教程。SSO之CAS单点登录详细搭建教程 本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们
[置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...
SSO\CAS 单点登录配置手册
本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单点登录和单...
用CAS实现框架的SSO单点登录.详细介绍操作流程并配有代码截图.
此文档自己亲手从0开始一步一步配置的详尽过程,其中包括keytool创建 、ticket、tomcat配置cas、自定义登录页面,处理服务器返回的乱码,服务退出、cas服务器返回多数据等等文档 包括SSO原理图,以及认证流程图等
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication ...
spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...
CAS实现sso单点登录原理,可以方便技术人员理解
内容图片附文字很详细的教大家如何部署