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

目录:

1. 描述编辑

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

2. 实现过程编辑

2.1 拷贝 JAR

1)将 CAS 两个 client-jar 包拷贝到%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib下,JAR 包文件如下:

casclient.jar

cas-client-core-3.2.1.jar

2)将%Java_HOME%\jdk\lib\tools.jar拷贝到%TOMCAT_HOME%\webapps\webroot\WEB-INF\lib下,如下图所示:

222

3)将 FrFilter.class 文件拷贝到%TOMCAT_HOME%\webroot\WEB-INF\classes\com\fr目录下,class 文件如下,请解压后使用:

FrFilter.rar

2.2 添加 web.xml

%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>

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

1562725978732477.png

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

1562726859502047.png

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

1562727154279094.png

2.3 添加 FrFilter.class

添加过滤信息,Java 详见:https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/FrFilter.java

将 FrFilter.java 编译成 class 文件,并放在%TOMCAT_HOME%\webroot\WEB-INF\classes\com\fr目录下。

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

222

2.4 测试

最后启动 Tomcat 服务器,在浏览器中输入:https://localhost:8443/webroot/decision即进入了 CAS 登录界面,通过 CAS 认证后,FRFilter 会看用户名是否在 fs 的用户中,如果在,则登录成功,否则提示凭证有误,如下图:

222