反馈已提交

网络繁忙

CAS登出方案

  • 文档创建者:yets11
  • 历史版本:20
  • 最近更新:Leo.Tsai 于 2022-08-22
  • 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 节问题描述。

    注:不支持移动端预览。

    4. 注意事项

    4.1 找不到 cas-servlet.xml 文件

    问题描述

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

    解决方案

    下载文件:cas.zip

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

    1619666802955366.png


    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持