历史版本1 :配置FineReport作为CAS客户端 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 概述编辑

制作完上述步骤后,下面我们来看下如何将FR与CAS单点登录结合。

2. 实现过程编辑

首先打开%TOMCAT_HOME%\webapps\WebReport\WEB-INF下的web.xml文件,在其中加入如下过滤条件:
  1. <filter>  
  2.         <filter-name>CASFilter</filter-name>  
  3.         <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>  
  4.         <init-param>  
  5.             <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>  
  6.             <param-value>https://localhost:8443/cas/login</param-value>  
  7.             <!--这里的server是服务端的IP-->  
  8.         </init-param>  
  9.         <init-param>  
  10.             <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>  
  11.             <param-value>https://localhost:8443/cas/proxyValidate</param-value>  
  12.             <!--这里的ServerName是服务端的主机名也就是CN-->  
  13.         </init-param>  
  14.         <init-param>  
  15.             <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>  
  16.             <param-value>localhost:8080</param-value>  
  17.         </init-param>  
  18.     </filter>  
  19.     <filter-mapping>  
  20.         <filter-name>CASFilter</filter-name>  
  21.         <url-pattern>/*</url-pattern>  
  22.     </filter-mapping>  
若报表应用设置了权限,则需要将如下代码:
  1. package com.fr;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintStream;  
  5. import javax.servlet.Filter;  
  6. import javax.servlet.FilterChain;  
  7. import javax.servlet.FilterConfig;  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.ServletRequest;  
  10. import javax.servlet.ServletResponse;  
  11. import javax.servlet.http.HttpServletRequest;  
  12. import javax.servlet.http.HttpSession;  
  13.   
  14. public class filter implements Filter  
  15. {  
  16.   public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)  
  17.     throws IOException, ServletException  
  18.   {  
  19.     HttpServletRequest re = (HttpServletRequest)req;  
  20.     HttpSession session = re.getSession(false);  
  21.     //获取session中保留的信息  
  22.     String user = (String)session.getAttribute("edu.yale.its.tp.cas.client.filter.user");  
  23.   
  24.     re.getSession().setAttribute("fr_username", user);  
  25.     re.getSession().setAttribute("fr_password", user);  
  26.     filterChain.doFilter(req, res);  
  27.     System.out.println("sds");  
  28.   }  
  29.   
  30.   public void init(FilterConfig filterconfig)  
  31.     throws ServletException  
  32.   {  
  33.   }  
  34.   
  35.   public void destroy()  
  36.   {  
  37.   }  
  38. }  
将filter.java编译成class文件,并放在%TOMCAT_HOME%\WebReport\WEB-INF\classes\com\fr目录下。
然后在web.xml文件中增加如下代码:
  1.  <filter>  
  2.    <filter-name>filter</filter-name>  
  3.    <filter-class>com.fr.filter</filter-class>  
  4.  </filter>  
  5.  <filter-mapping>  
  6.     <filter-name>CASFilter</filter-name>  
  7.     <url-pattern>/*</url-pattern>  
  8.  </filter-mapping>  
  9. <filter-mapping>  
  10.     <filter-name>filter</filter-name>  
  11.     <url-pattern>/ReportServer</url-pattern>  
  12. </filter-mapping>   

最后打开tomcat服务器,在浏览器中输入:http://localhost:8080/WebReport/ReportServer?reportlet=GettingStarted.cpt即进入了cas登录界面。