當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

CAS 登出方案

1. 概述

1.1 问题描述

通过 配置 FineBI 作为 CAS 客户端 ,可以实现通过 CAS 认证登录 FineBI 。

但是存在一个问题,如果直接退出 FineBI 决策系统,会进入到 FineBI 的登录界面,并不是 CAS 登录系统,说明没有完全退出 CAS 系统。如何实现 FineBI 的退出登录后,真正退出 CAS 系统并且重新进入到 CAS 登录页面呢?如下图所示:

1609984588180323.gif

1.2 解决思路

配置 FineBI 的退出页面及 CAS 系统退出页面,并进行关联,即可实现 FineBI 退出后退出 CAS 系统。

2. 操作步骤

2.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:falsecas.logout.followServiceRedirects:true,使支持 CAS 退出时支持输入 service 参数为跳转路径,如下图所示:

1587462972837011.png

2.2 配置 FineBI 端

点击下载 web.xml 文件:web.xml

打开 %TOMCAT_HOME%\webapps\webroot\WEB-INF\web.xml 的第一个 fitler 之前添加如下代码:

<!-- 填写退出的URL -->   
<context-param>    
  <param-name>casServerLogoutUrl</param-name>    
  <param-value>https://roxy: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>

如下图所示:

1587463113971072.png

2.3 新增 logout.jsp 页面

点击下载 logout.jsp 文件:logout.jsp

如果需要退出后定位到 CAS 退出页面,必须重写退出页面,实现退出 CAS 系统并重新进入到 CAS 登录页面

需要创建 logout.jsp 文件,页面内容如下所示:

注:URL 需要根据实际情况修改域名。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<%
session.removeAttribute("edu.yale.its.tp.cas.client.filter.user");
session.removeAttribute("_const_cas_assertion_");
session.invalidate();
response.sendRedirect("https://roxy:8443/cas/logout?service=https://roxy:8443/webroot/decision/view/report?op=fs");
%>
<html>
<head>
<title>标题</title>
</head>
<body>
</body>
</html>

将 logout.jsp文件放到%TOMCAT_HOME%\webapps\webroot\下,如下图所示:

1587463462817215.png

2.4 配置决策系统的登录页面

用管理员账号登录数据决策系统后,打开「系统管理>外观配置>登录页」,设置登录页面为 logout.jsp ,如下图所示:

1609984769710852.png

保存后,重启 Tomcat 服务器,即可看到上面的退出效果。

3. 效果查看

请参见本文 1.1 问题描述。

4. 注意事项

4.1 找不到 cas-servlet.xml 文件

问题描述

用户 CAS 单点成功后,按照本文文档做 CAS 登出时,2.1 节步骤中没有找到 cas-servlet.xml 文件。

解决方案

下载文件:cas.zip

将下载后的压缩包解压,将 cas 文件夹复制粘贴到%TOMCAT_HOME%\webapps下,如下图所示:

1619667026922915.png


附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!