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

CAS 登出方案

1. 概述

1.1 問題描述

通過 配置 FineReport 作爲 CAS 客戶端 ,可以實現通過 CAS 認證登錄 FineReport 。

但是存在一個問題,如果直接退出 FineReport 決策系統,會進入到 FineReport 的登錄界面,并不是 CAS 登錄系統,說明沒有完全退出 CAS 系統。如下圖所示:

222

如何實現 FineReport 的退出後,真正退出 CAS 系統并且重新進入到 CAS 登錄頁面呢?如下圖所示:

222

1.2 解決思路

配置 FineReport 的退出頁面及 CAS 系統退出頁面,并進行關聯,即可實現 FineReport 退出後退出 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 參數爲跳轉路徑,如下圖所示:

注:本文 2.3 節的 logout.jsp 文件中,跳轉路徑由 service 參數表示。

1587463541417713.png

2.2 配置 FineReport 端

打開 %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>
顯示代碼

如下圖所示:

94.png

2.3 新增 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://josie:8443/cas/logout?service=https://josie:8443/webroot/decision/view/report?op=fs");
%>

<html>
<head>
<title>标題</title>
</head>
<body>
</body>
</html>
顯示代碼

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

0.png

2.4 配置決策系統的登錄頁面

用管理員賬号登錄決策系統後,打開「系統管理>外觀配置>登錄頁」,設置登錄頁面爲 logout.jsp如下圖所示:

1587464830531151.png

保存後,重啓 Tomcat 服務器,即可看到上面的退出效果。

3. 效果查看

請參見 1.1 節問題描述。

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s後關閉

反饋已提交

網絡繁忙