历史版本7 :11.0集成CAS后的远程设计 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

10.0集成 CAS 之后,远程设计的请求会被 CAS 拦截,导致无法进行远程设计。

2. 解决方案编辑

点击下载新增拦截和 xml 文件:CAS远程设计.zip

2.1 定义 RemoteFilter

1)需要另外定义一个 RemoteFilter,在请求的一开始就过滤 /remote/design的请求。(这个是远程设计走的请求路径),定义 RemoteFilter 源码如下:

package com.fr; 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; 
public class RemoteFilter implements Filter {  
   
   public void destroy() {  
     }     
   public void init(FilterConfig filterConfig) throws ServletException {
       }     
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)        
         throws IOException, ServletException {
       HttpServletRequest req = (HttpServletRequest)servletRequest;        
       HttpServletResponse res = (HttpServletResponse)servletResponse;        
       req.getRequestDispatcher(req.getServletPath() + req.getPathInfo()).forward(req, res);   
     }
}

2)将编译后的 class 文件放在工程路径%TOMCAT_HOME%/webroot/WEB-INF/classes/com/fr下,如下图所示:

image.png

2.2 修改 Web.xml

%TOMCAT_HOME%\webapps\webroot\WEB-INF目录下对 Web.xml 新增拦截或使用本文提供的附件中的 xml 文件替换。Web.xml 里相应在所有 Filter 的头部加入这个新增的 Filter,代码如下:

<filter>     
     <filter-name>RemoteFilter</filter-name>           
     <filter-class>com.fr.RemoteFilter</filter-class>       
  </filter>       
 <filter-mapping>           
              <filter-name>RemoteFilter</filter-name>           
              <url-pattern>/decision/remote/design</url-pattern>           
              <url-pattern>/decision/remote/design/*</url-pattern>       
 </filter-mapping>

如下图所示:

image.png

2.3 重启工程

重启报表工程。

3. 注意事项编辑

设置完成后在通过 远程设计 进行远程连接时,使用的用户必须是 FineReport 数据决策系统内的用户。