历史版本4 :CAS登出方案 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
通过配置FR作为CAS客户端可以实现通过cas认证来进行FR的登录,但是存在一个问题,如果直接退出FR决策系统,会进入到FR的登录界面,并不是cas登录系统,说明没有完全退出cas系统。如下图所示:
那么,如何实现FR的退出后真正退出cas系统并且重新进入到cas登录页面呢,如下图所示:
2. 思路编辑
配置FR的退出页面及cas系统退出页面,并进行关联,即可实现FR退出后退出cas系统。
3. 操作过程编辑
3.1 配置cas服务器端
修改%TOMCAT_HOME%\webapps\cas\WEB-INF\cas-servlet.xml里的logoutController节点,
找到如下代码
<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:servicesManager-ref="servicesManager"
p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/>
修改cas.logout.followServiceRedirects:false为cas.logout.followServiceRedirects:true使支持cas退出时支持输入service参数为跳转路径,如下图:
3.2 配置FR端
打开%TOMCAT_HOME%\webapps\webroot\WEB-INF\web.xml
的第一个fitler之前添加如下代码:
<!-- 填写退出的URL -->
<context-param>
<param-name>casServerLogoutUrl</param-name>
<param-value>https://josie:8443/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>
如下图:
3.3 新增logout.jsp页面
如果需要退出后定位到cas退出页面,必须重写退出页面,实现退出cas系统并重新进入到cas登录页面
logout.jsp页面内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body>
<%
response.sendRedirect(application.getInitParameter("casServerLogoutUrl") +("?service=https://josie:8443/webroot/decision"));
%>
</body>
</html>
放到%TOMCAT_HOME%\webapps\webroot\下,如下图:
3.4 配置决策系统的登录页面
用管理员账号登录决策系统后,打开系统管理-外观配置-登录页,设置登录页面为logout.jsp,如下图:
保存后,重启tomcat服务器,即可看到上面的退出效果了。