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

目录:

1. 概述编辑

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

2. 实现过程编辑

首先打开%TOMCAT_HOME%\webapps\WebReport\WEB-INF下的web.xml文件,在其中加入如下过滤条件:
<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://localhost:8443/cas/login</param-value>               <!--这里的server是服务端的IP-->           </init-param>           <init-param>               <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>               <param-value>https://localhost:8443/cas/proxyValidate</param-value>               <!--这里的ServerName是服务端的主机名也就是CN-->           </init-param>           <init-param>               <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>               <param-value>localhost:8080</param-value>           </init-param>       </filter>       <filter-mapping>           <filter-name>CASFilter</filter-name>           <url-pattern>/*</url-pattern>       </filter-mapping>  
若报表应用设置了权限,则需要将如下代码:
package com.fr;      import java.io.IOException;   import java.io.PrintStream;   import javax.servlet.Filter;   import javax.servlet.FilterChain;   import javax.servlet.FilterConfig;   import javax.servlet.ServletException;   import javax.servlet.ServletRequest;   import javax.servlet.ServletResponse;   import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpSession;      public class filter implements Filter   {     public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)       throws IOException, ServletException     {       HttpServletRequest re = (HttpServletRequest)req;       HttpSession session = re.getSession(false);       //获取session中保留的信息       String user = (String)session.getAttribute("edu.yale.its.tp.cas.client.filter.user");          re.getSession().setAttribute("fr_username", user);       re.getSession().setAttribute("fr_password", user);       filterChain.doFilter(req, res);       System.out.println("sds");     }        public void init(FilterConfig filterconfig)       throws ServletException     {     }        public void destroy()     {     }   }  
将filter.java编译成class文件,并放在%TOMCAT_HOME%\WebReport\WEB-INF\classes\com\fr目录下。
然后在web.xml文件中增加如下代码:
<filter>      <filter-name>filter</filter-name>      <filter-class>com.fr.filter</filter-class>    </filter>    <filter-mapping>       <filter-name>CASFilter</filter-name>       <url-pattern>/*</url-pattern>    </filter-mapping>   <filter-mapping>       <filter-name>filter</filter-name>       <url-pattern>/ReportServer</url-pattern>   </filter-mapping>   

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