FineReport权限集成.docx
《FineReport权限集成.docx》由会员分享,可在线阅读,更多相关《FineReport权限集成.docx(30页珍藏版)》请在冰豆网上搜索。
FineReport权限集成
FineReport权限集成
概述
为了对某张报表的对象操作进行控制,让某一部分人拥有一张报表的部分或全部的操作权限,对报表的操作控制其权限,FineReport提供了简单易用、功能强大的权限系统,即基于B/S的权限控制。
如:
与ERP,CRM,OA、.Net等软件或项目中的现有系统进行权限集成,当然FineReport权限系统也可以作为独立的权限系统使用。
这里我们主要讲解FineReport权限系统与现有的项目系统的权限集成。
而FineReport与系统的权限集成主要是对登录用户的身份认证配置和角色可访问模板配置来实现对权限的控制。
其中,用户的身份认证配置可通过4种方式来实现,分别是:
数据集用户、LDAP用户、HTTP认证服务、不启用内置用户。
角色可访问模板配置,即角色权限配置,有启用内置角色和不启用角色之分。
下面我们分别针对不同的客户需求列出其实现的方案流程。
注:
目前FineReport的权限控制都是基于网络应用的,所以我们需要建立一个服务器以及FineReport的报表工程(详细设置可以查看服务器部署章节内容)。
这里的服务器通常指Tomcat,WebSphere,Weblogic,Jboss等服务器,浏览器主要指主流的IE,Firefox等,如下方案流程,我们都以Tomcat服务器为例。
补充说明:
1.对于最终用户、IT部门等把报表作为一个独立的工程,不同用户访问报表时首先需要进行登录,对登陆用户进行认证,认证成功则允许该用户访问工程下对应的报表,否则则没有权限访问,这种情况下可以依据不同情景使用数据集用户认证或者LDAP认证等。
2.对于ERP、OA、.Net等项目平台中,报表只是整个工程的一个模块,此时又分为如下常用情景。
●用户登陆:
如OA系统,不需要在报表服务端再进行认证,只要OA端认证通过登陆成功便可进入报表模块,即不启用内置用户。
●用户登陆OA系统后,不同的用户所能看到的报表是不同的,因此需要对登陆的用户进行认证,获得用户对应的角色,从而控制报表访问权限。
若用户权限信息存于数据库或windows的LDAP中,此时便可使用数据集用户认证或LDAP认证;若系统有统一的认证体系,则可以使用HTTP认证方式。
权限管理平台
前提准备:
在tomcat服务器下有(如:
WebReport)部署报表工程。
部署方法可参考服务器部署章节内容。
FineReport自带有BS端的权限管理平台,启动报表服务器,在此以tomcat为例。
在浏览器中输入如下地址即可访问FineReport权限管理平台:
http:
//localhost:
8080/WebReport/ReportServer?
op=fr_platform//ip、端口及工程名可根据实际情况改变。
权限管理平台主要有三个作用
Ø用户身份认证配置
Ø角色可访问模板配置
Ø平台管理
控制访问op=fr_platform的权限管理平台,是管理权限平台的。
在实际应用系统中,并不是每个人都能访问该权限管理平台的,只有属于管理员的用户才可查看与修改权限。
此时就需要对权限管理平台进行权限设置。
默认的情况下是没有设置权限的,所有用户都可以访问此op=fr_platform页面,这里当配置了后,就需要用已有的可访问角色的用户才能访问该平台。
平台访问权限管理
打开权限管理平台,点击左侧的平台管理节点,增加可管理平台的角色,如下图所示,我们增加一个“管理员”角色,点击确定。
注:
按钮的含义依次为增加角色、删除角色、编辑角色、保存角色、自动刷新获得所有权限。
重启tomcat服务器,再次访问:
http:
//localhost:
8080/WebReport/ReportServer?
op=fr_platform可以看到,访问管理平台时需要先进行登录,若使用非管理员角色的用户登陆,将会提示没有认证,则不能进入也就不能管理该平台。
只有带有管理员角色的用户登陆才能够管理该平台,如下所示:
其中用户身份认证与角色访问模板权限在后续章节中将详细介绍。
典型的权限集成方案
数据集身份认证与权限控制的全流程方案
1.在自定义的登陆界面中,从seesion中获取用户名密码传递给报表服务
逻辑实现过程:
需集成的系统自定义登陆页面,如:
“username”“password”登陆提交后,将信息保存于session中,再通过一个过程将信息传给报表的“fr_username”,“fr_password”,并会匹配对应的“fr_role”等,将信息也保存于session中。
注:
这里FineReport是以fr_****形式识别命名参数的。
其处理您系统的自定义登陆页面的代码如下:
对java系统,可在您系统的对应登陆功能的传参实现的代码段中通过以下语句将用户名:
“username”,密码:
“password”作为key保存于session中,传递给我们的报表服务,代码如下:
session.setAttribute("form_value","{fr_username:
"+username+",fr_password:
"+password+"}");
对java或是非java系统,无论您的自定义登陆页面如何,必要的元素肯定是有的,就如下一个简单的登陆页面来讲解情况,如下字体标注为红色和绿色的代码,为您系统的登陆页面需要添加和需要相应修改的代码,要注意下不能整个拷贝代码。
这段代码是实现将对应的值传给我们报表服务的逻辑实现过程。
这里例举的简单登陆页面代码如下:
functionloginFR(path,username,password){
vars=document.createElement("script");
s.type="text/javascript";
s.src=path+"/ReportServer?
op=auth_login&form_value={fr_username:
"+username+","+"fr_password:
"+password+"}";
varhead=document.getElementsByTagName("head")[0];
alert(s.src);
head.appendChild(s);
}
functiondoSubmit(){
varusername=document.getElementById("username").value;
varpassword=document.getElementById("password").value;
document.getElementById("form_value").value="{'fr_username':
"+username+",'fr_password':
"+password+"}";
loginFR("http:
//192.168.100.210:
8079/WebReport",username,password);//这里是FR系统的服务器地址
login.submit();
}
//192.168.100.210:
8080/WebReport/ReportServer?
op=auth_login"name="login"method="POST">
//这里的action指您系统项目的登陆页面的表单提交给服务器的转向地址
用户名:
密码:
代码讲解,如下:
2.数据集身份认证配置
2.1设计器基本操作
2.1.1数据库表的准备
建服务器数据集前,数据库中要建好用户名-密码和用户名-角色相应的表。
如:
在Access数据库中,我们建好相应的数据表,命名:
FRDemo.mdb,放置FineReport安装目录下,如:
C:
\FineReport6.5\WebReport下。
然后打开设计器|服务器|定义数据连接,如图所示:
选择Access数据库,驱动器是会随选择的数据库联动匹配选择的;用户名和密码是要和您安装的数据库对应。
其URL中的DBQ=,点击
,选择放置的数据库FRDemo.mdb的路径,亦可写成DBQ=${ENV_HOME}\..\FRDemo.mdb,其${ENV_HOME}\..是可以自动获取您当前安装的是C:
\FineReport6.5\WebReport下,点击测试连接,连接成功即可。
2.1.2设置Tomcat下的FineReport工程报表环境
首先我们要打开FineReport的设计器并更改报表环境到Tomcat下的FineReport工程。
而设置Tomcat下的FineReport工程报表环境,步骤如下:
在打开的设计器中,点击
,在出来的界面中点击
,如下:
在报表配置运行环境中界面中,点击
,添加设置Tomcat下的FineReport工程报表环境。
2.1.3建用户-密码表、用户-角色表服务器数据集
打开报表数据集,点击
,如:
分别建立两个数据集ds1、ds2,分别自定义命名为:
用户名-密码表、用户名-角色表。
在FRDemo表中分别拖入用户名-密码和用户名-角色相应的数据表即可,如下:
2.2用户认证设置
2.2.1启动tomcat服务器,打开权限管理平台:
http:
//localhost:
8080/WebReport/ReportServer?
op=fr_platform
点击左侧的用户身份认证配置|数据集用户,如下进行设置,点击确定保存设置。
该步是设置选择您刚在服务器数据集中已建有的的用户名-密码表、用户名-角色表的两个数据集,此设置用户认证时的用户名、密码、角色要与报表中设置的数据集匹配。
其中,登陆模板路径:
即登陆页面,默认为空,将使用FineReport内置的登陆界面http:
//localhost:
8080/WebReport/ReportServer?
op=auth_loginui,也可以输入自定义登陆界面地址。
这里我们举例输入:
http:
//192.168.100.210:
8080/WebReport/login.html?
as=asd即设置再次打开权限管理平台:
http:
//localhost:
8080/WebReport/ReportServer?
op=fr_platform时,就自动跳转到您系统的登陆界面,即我们上面设置输入的地址:
http:
//192.168.100.210:
8080/WebReport/login.html?
as=asd。
自动转向地址:
指您直接访问的登陆界面,输入用户名-密码认证成功后,会自动跳转到此地址。
若要是设置了身份认证操作,再进行角色权限的操作控制,则这里的自动转向地址就用处不大。
(因为您输入用户名-密码认证成功后,主要是查看某角色所对应的模板的相关权限设置),当然您也可以设置自动转向地址,