(二)SSO之CAS框架单点退出,自定义退出界面.

用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面.

用了CAS,发现退出真是个麻烦事,退出后跳转到了CAS的注销页面,而且不关闭浏览器的话,其实并没有真的退出,输入地址仍是登陆状态。为了实现退出后登陆到跳转页面,做了以下配置:

1.server 端

修改src\main\webapp\WEB-INF\cas-servlet.xml里的logoutController

增加p:followServiceRedirects="true"使支持logout输入service参数为跳转路径。

  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"
  7. />

2.客户端

web.xml 中在登录的filter之前增加

  1. <!-- 填写退出的URL -->
  2. <context-param>
  3. <param-name>casServerLogoutUrl</param-name>
  4. <param-value>http://10.1.83.34:8080/cas/logout</param-value>
  5. </context-param>
  6. <!--单点退出配置-->
  7. <listener>
  8. <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
  9. </listener>
  10. <filter>
  11. <filter-name>CAS Single Sign Out Filter</filter-name>
  12. <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>CAS Single Sign Out Filter</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>

在JSP中,如果直接把退出转到cas/logout之后,会跳转到CAS的注销页面,这个情况下,如果直接点击浏览器的回退按钮,发现仍然可以正常操作,也就是session并没有被注销掉,可能CAS的logout只是去掉了TGT吧。

为了解决这个问题,我只好重新写了个JSP,退出按钮跳转到这个JSP,这个JSP里先注销session, 然后再跳转到CAS的退出,并增加service参数,使跳转到登陆页面。

  1. <a
  2. href="${pageContext.request.contextPath}/web-root/include/logout.jsp" ></a>
  3. <div id="box_T5" class="toptaps5">退出登录</div>

logout.jsp内容:

  1. <body>
  2. <%
  3. session.invalidate();
  4. response.sendRedirect(application
  5. .getInitParameter("casServerLogoutUrl")
  6. + "?service="
  7. + application.getInitParameter("serverName") + "/myweb");
  8. %>
  9. </body>

说明:"/myweb"就是你退出后默认转到的界面, application.getInitParameter,需要自己在web.xml中加入context-parameter的配置. 这样才能成功跳转到你退出登录后想要跳转到的界面.

经过测试,可以实现所要的功能。

(二)SSO之CAS框架单点退出,自定义退出界面.,布布扣,bubuko.com

时间: 2024-10-06 07:31:52

(二)SSO之CAS框架单点退出,自定义退出界面.的相关文章

(四)SSO之CAS框架单点登录,自定义验证登录方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

(四)SSO之CAS框架单点登录,修改验证数据库的方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

(三)SSO之CAS框架单点退出,退出到CAS登录界面

应需求的改变.CAS自己定义登录页面不安全,不再使用,于是我一下子回到了原点.在linux上部署上了没有加自己定义登陆界面的CAS,接下来開始改动CAS自己默认的登录界面为我们的界面. 一下子改动成功是根本就不可能的,于是删一点cas的源代码的东西.看看效果,然后再删除一些不必要的东西.看看效果,再加上自己系统登录界面的样式,就这样一步步的做成自己系统登录界面的样式,登录界面完成后就是,CAS默认的登出界面了. 登出界面的要求.在登出的时候返回到登录的主界面,就去改动了CAS的登出的界面了. 有

(一)SSO之CAS框架通俗原理

SSO统一验证 SSO(Single Sign On ),SSO统一验证的目的是为了让多个系统使用统一登录入口,用户只需要登录其中一个系统,在cookie时间内便可以不用登录,就直接进入系统了. CAS简介 CAS是SSO的一个框架,全称为:Central Authentication Service,是一款不错的针对web应用的单点登录框架,包括java,.net,PHP,Prel,Apache,uPortal,Ruby等. 直接上原理图,如下图所示: 这幅图画的是很不错的,思前想后,还是直接

SSO 基于CAS实现单点登录 实例解析(二)

本文目录: 概述 演示环境 部署CAS-Server相关的Tomcat 部署CAS-Client相关的Tomcat 测试验证SSO 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机 <span style="font-size:18px;"># 127.0.0.1 localhost # ::1 localhost 127.0.0.1 localhost 127.0

【cas基础】SSO基于cas实现单点登录

概念介绍 1.定义 CAS ( CentralAuthentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 WebSSO ). 2.结构体系 从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client . CAS Server 负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 / 密码等凭证(Credentials) . CASClien

(六)SSO之CAS框架扩展 改动CAS源代码实现与ESS动态password验证对接

题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添加安全性了. 正文: 对于安全性问题.我们怎样解决呢? 解决方式: 1.避免sql注入问题. 2.用户登录password加密. 3.使用https安全訪问方式. 4.使用第三方设备.像银行一般使用的password口令. 5.... 前三种方案是比較常见的.这里主要说第四种解决方式,我们在前三种方

(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接

题记: 偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了. 正文: 对于安全性问题,我们如何解决呢? 解决方案: 1.避免sql注入问题. 2.用户登录密码加密. 3.使用https安全访问方式. 4.使用第三方设备,像银行一般使用的密码口令. 5.... 前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网

SSO之CAS单点登录实例演示

一.概述 此文的目的就是为了帮助初步接触SSO和CAS 的人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录. CAS的官网:http://www.jasig.org/cas 二.演示环境 本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 64位,主机名称:michael-pc JDK 1.6.0_18 Tomcat 6.0.29 CAS-server-3.4.11.CAS-client-3.2.1 根据演示需求, 用修改hosts