反馈已提交

网络繁忙

集群下CAS方案

  • 文档创建者:Carly
  • 历史版本:11
  • 最近更新:Alan.Wong-王成龙 于 2023-10-08
  • 1. 版本

    报表服务器版本
    11.0

    2. 概述

    2.1 问题描述

    CAS 单点登录方案配置完成,配合Nginx的时候,访问nginx/webroot/decision,URL 会变化成集群节点的地址。

    2.2 解决思路

    仅配置一个 CAS 服务端,每个集群节点作为 CAS 的一个客户端,FineReport 工程未配置 HTTPS 。

    3. 操作过程

    注:本文提供方案只适用于 yale 策略,不适用于 jasig 。

    3.1 配置CAS服务端

    3.1.1 配置 SSL 证书实现 HTTPS 访问

    3.1.2 安装配置 CAS

    3.1.3 实现基于数据库的身份验证

    3.2 配置 FineReport 作为 CAS 客户端

    具体操作步骤请参见:配置 FineReport 作为 CAS 客户端

    配置完成后,注意事项如下:

    3.2.1 注意事项一

    两个 client-jar 包需换成修改后的 JAR,替换到%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib下,JAR 包文件如下:

    casclient.jar

    cas-client-core-3.2.1.jar

    3.2.2 注意事项二

    1)在%TOMCAT_HOME%\webapps\webroot\WEB-INF目录下修改 web.xml 文件。文件如下:web.xml

    xml 内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app
      xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version="2.4">
     <display-name>Template WebApp</display-name>
       <mime-mapping>
     <extension>msi</extension>
     <mime-type>application/x-msi</mime-type>
     </mime-mapping>  

     
           <!-- 填写退出的URL -->  
           
       <context-param>    
         <param-name>casServerLogoutUrl</param-name>    
         <param-value>https://yina: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>  
         
       <filter>  
           <filter-name>CASFilter</filter-name>  
           <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>  
           <init-param>  
               <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>  
               <param-value>https://yina:8443/cas/login</param-value>  
               <!--cas提供登录页面的url-->  
           </init-param>  
           <init-param>  
               <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>  
               <param-value>https://yina:8443/cas/proxyValidate</param-value>  
               <!--cas提供service ticker或者proxy ticket验证服务的url-->  
           </init-param>  
           <init-param>  
               <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>  
               <param-value>192.168.1.127</param-value>  
                           <!--客户端应用的域名和端口-->  
           </init-param>  
           
           <!--排除远程设计-->
           <init-param>  
               <param-name>edu.yale.its.tp.cas.client.filter.casExcludeUrl</param-name>  
               <param-value>/decision/remote/design/*</param-value>  
           </init-param>
           
       </filter>  
       <filter-mapping>  
           <filter-name>CASFilter</filter-name>  
           <url-pattern>/decision/*</url-pattern>  
       </filter-mapping>
    <filter>    
       <filter-name>FrFilter</filter-name>    
       <filter-class>com.fr.FrFilter</filter-class>    
    </filter>    
    <filter-mapping>    
       <filter-name>FrFilter</filter-name>    
       <url-pattern>/decision/*</url-pattern>    
    </filter-mapping>  
    </web-app>

    2)web.xml 中 yina 为个人配置的域名,请按照个人设置进行修改。如下图所示:

    1562725978732477.png

    3)web.xml 中客户端应用的域名和端口需改成 nginx 服务器地址和监听端口(示例中 nginx 端口为80,所以在 web.xml 中省略了端口号)。

    如下图所示:

    1562726859502047.png

    4)为了正常使用远程设计功能,需要在 web.xml 中额外配置一下:

    1562727154279094.png

    3.2.3 注意事项三

    将 FrFilter.class 文件改为修改后的 class 文件,替换到%TOMCAT_HOME%\webroot\WEB-INF\classes\com\fr目录下。

    class 文件如下,请解压后使用:FrFilter.rar

    3.3 CAS 登出方案

    注:不配置CAS登出方案可忽略此步骤及注意点

    CAS登出方案配置请参见: CAS 登出方案

    CAS登出方案配置注意点如下:

    logout.jsp文件修改如下:logout.rar 。页面内容如下所示:

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page import="java.net.URLEncoder" %>
    <%@ page import="edu.yale.its.tp.cas.client.filter.CASFilter" %>
    <%@ page import="com.fr.FrFilter" %>
    <html>
    <body>
    <%
       CASFilter.deleteTicket(request, response);
       FrFilter.deleteToken(request);
       String loginUrl = URLEncoder.encode("http://192.168.1.127/webroot/decision");
       response.sendRedirect(application.getInitParameter("casServerLogoutUrl")+"?service=" + loginUrl);
    %>
    </body>
    </html>

    注:JSP文件中,loginUrl 需要改成 nginx 服务器地址和端口(示例中 nginx 端口为80,所以在 web.xml 中省略了端口号),如下图所示

    1562728534732679.png

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

    3.4 搭建集群环境

    平台配置集群操作请参见:平台配置集群

    在对FineDB进行迁移之前需要去掉cas,再进行登录再进行FineDB的迁移,不然用户信息表会因cas的占用而迁移失败

    附件列表


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

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

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

    不再提示

    10s后关闭



    AI

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