1、用户登陆OA系统后,不同的用户所能看到的报表是不同的,因此需要对登陆的用户进行认证,获得用户对应的角色,从而控制报表访问权限。若用户权限信息存于数据库或windows的LDAP中,此时便可使用数据集用户认证或LDAP认证;若系统有统一的认证体系,则可以使用HTTP认证方式。权限管理平台 前提准备:在tomcat服务器下有(如:WebReport)部署报表工程。部署方法可参考服务器部署章节内容。FineReport自带有 BS端的权限管理平台,启动报表服务器,在此以tomcat为例。在浏览器中输入如下地址即可访问FineReport权限管理平台:http:/localhost:8080/WebR
2、eport/ReportServer?op=fr_platform / ip、端口及工程名可根据实际情况改变。权限管理平台主要有三个作用 用户身份认证配置角色可访问模板配置平台管理控制访问op=fr_platform的权限管理平台,是管理权限平台的。在实际应用系统中,并不是每个人都能访问该权限管理平台的,只有属于管理员的用户才可查看与修改权限。此时就需要对权限管理平台进行权限设置。默认的情况下是没有设置权限的,所有用户都可以访问此op=fr_platform页面,这里当配置了后,就需要用已有的可访问角色的用户才能访问该平台。平台访问权限管理打开权限管理平台,点击左侧的平台管理节点,增加可管理平
3、台的角色,如下图所示,我们增加一个“管理员”角色,点击确定。按钮的含义依次为增加角色、删除角色、编辑角色、保存角色、自动刷新获得所有权限。重启tomcat服务器,再次访问:op=fr_platform可以看到,访问管理平台时需要先进行登录,若使用非管理员角色的用户登陆,将会提示没有认证,则不能进入也就不能管理该平台。只有带有管理员角色的用户登陆才能够管理该平台,如下所示:其中用户身份认证与角色访问模板权限在后续章节中将详细介绍。典型的权限集成方案数据集身份认证与权限控制的全流程方案1.在自定义的登陆界面中,从seesion中获取用户名密码传递给报表服务逻辑实现过程:需集成的系统自定义登陆页面,
4、如:“username”“password”登陆提交后,将信息保存于session中,再通过一个过程将信息传给报表的“fr_username”,“fr_password”,并会匹配对应的“fr_role”等,将信息也保存于session中。这里FineReport是以fr_*形式识别命名参数的。其处理您系统的自定义登陆页面的代码如下:对java系统,可在您系统的对应登陆功能的传参实现的代码段中通过以下语句将用户名:“username”,密码:“password”作为key保存于session中,传递给我们的报表服务,代码如下:session.setAttribute(form_value, f
5、r_username: + username + , fr_password: + password + );对java或是非java系统,无论您的自定义登陆页面如何,必要的元素肯定是有的,就如下一个简单的登陆页面来讲解情况,如下字体标注为红色和绿色的代码,为您系统的登陆页面需要添加和需要相应修改的代码,要注意下不能整个拷贝代码。这段代码是实现将对应的值传给我们报表服务的逻辑实现过程。这里例举的简单登陆页面代码如下:headbodyscript type=text/javascriptfunction loginFR(path, username, password) var s=docume
6、nt.createElement(script s.type= text/javascript ; s.src=path + /ReportServer?op=auth_login&form_value=fr_username:, + fr_password: var head=document.getElementsByTagName(head)0; alert(s.src); head.appendChild(s);function doSubmit() var username = document.getElementById(username).value;var password
7、= document.getElementById(passworddocument.getElementById().value = fr_username:,fr_passwordloginFR(/192.168.100.210:8079/WebReport, username, password); /这里是FR系统的服务器地址login.submit();/scriptform action=op=auth_login name=login method=POST/这里的action指您系统项目的登陆页面的表单提交给服务器的转向地址用户名:input id= type=textfr_u
8、sername/密 码:fr_passwordhiddeninput type=button value=登录 onclick=doSubmit()/form/body/head/html代码讲解,如下:2.数据集身份认证配置2.1 设计器基本操作2.1.1 数据库表的准备建服务器数据集前,数据库中要建好用户名-密码和用户名-角色相应的表。在Access数据库中,我们建好相应的数据表,命名:FRDemo.mdb,放置FineReport安装目录下,如:C:FineReport6.5WebReport下。然后打开设计器|服务器|定义数据连接,如图所示:选择Access数据库,驱动器是会随选择的数
9、据库联动匹配选择的;用户名和密码是要和您安装的数据库对应。其URL中的DBQ= ,点击,选择放置的数据库FRDemo.mdb的路径,亦可写成DBQ=$ENV_HOME.FRDemo.mdb ,其$ENV_HOME.是可以自动获取您当前安装的是C:FineReport6.5WebReport下,点击测试连接,连接成功即可。2.1.2 设置Tomcat下的FineReport工程报表环境首先我们要打开FineReport的设计器并更改报表环境到Tomcat下的FineReport工程。而设置Tomcat下的FineReport工程报表环境,步骤如下:在打开的设计器中,点击,在出来的界面中点击,如下
10、:在报表配置运行环境中界面中,点击,添加设置Tomcat下的FineReport工程报表环境。2.1.3 建用户-密码表、用户-角色表服务器数据集打开报表数据集,点击,如:分别建立两个数据集ds1、ds2,分别自定义命名为:用户名-密码表、用户名-角色表。在FRDemo表中分别拖入用户名-密码和用户名-角色相应的数据表即可,如下:2.2 用户认证设置2.2.1 启动tomcat服务器,打开权限管理平台:op=fr_platform点击左侧的用户身份认证配置|数据集用户,如下进行设置,点击确定保存设置。该步是设置选择您刚在服务器数据集中已建有的的用户名-密码表、用户名-角色表的两个数据集,此设置
11、用户认证时的用户名、密码、角色要与报表中设置的数据集匹配。其中,登陆模板路径:即登陆页面,默认为空,将使用FineReport内置的登陆界面http:op=auth_loginui,也可以输入自定义登陆界面地址。这里我们举例输入:8080/WebReport/login.html?as=asd 即设置再次打开权限管理平台:op=fr_platform时,就自动跳转到您系统的登陆界面,即我们上面设置输入的地址:as=asd。自动转向地址:指您直接访问的登陆界面,输入用户名-密码认证成功后,会自动跳转到此地址。若要是设置了身份认证操作,再进行角色权限的操作控制,则这里的自动转向地址就用处不大。(因为您输入用户名-密码认证成功后,主要是查看某角色所对应的模板的相关权限设置),当然您也可以设置自动转向地址,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1