1. 概述
1.1 版本
报表服务器版本 |
---|
10.0 |
1.2 功能简介
用户可以在两种场景下打开 FineReport 报表:
1)登录数据决策系统,在平台目录中访问报表
2)将报表集成到其他系统中进行访问
在第一种情况下,可以通过权限管理来对用户的是否拥有查看报表的权限进行管理。也可通过模板认证配置用户是否拥有查看模板的权限。
在第二种情况下,通常需要通过模板认证来配置用户是否拥有查看模板的权限,详细内容参见:模板认证
而对于主报表中含有 网络报表 的超级链接,可通超链打开子报表的情况,则需要对主子报表均进行模板认证来保证数据的安全。
本文主要介绍,在开启模板认证的情况下,报表中含有网络报表类型的超级链接的继承权限问题。
注1:由于 URL 中超链跳转会带上 hyperlinktoken,因而在半小时有效期内,拥有该 token 就能查看其他所有模板的数据,这会导致越权访问。故2019-12-05及之后版本的 JAR 包加上了用户登录限制。
注2:FineReport 无分享功能,所谓的分享就是拷贝当前报表的 URL 给其他人。
1.3 注意事项
只有超链方式为模板路径时,超链权限才能继承。以下两种方式不支持权限继承:
1)参数直接写在模板路径后面
2)网页链接中填写模板预览 URL
2. 逻辑说明
2.1 在平台中访问报表
该场景下只有三种类型的模板访问方式校验模板权限:
1)使用「添加模板」的方式,将模板做为数据决策系统的首页
2)使用「添加链接」的方式,将模板做为数据决策系统的首页
3)使用「添加链接」的方式,将模板挂载到目录
注:使用「添加模板」的方式挂载模板,不校验模板权限。
2.1.1 模板设置
1)超级管理员登录数据决策系统,点击「管理系统>模板认证>认证配置」,开启「模板认证」,选择「角色权限认证」,点击「保存」。如下图所示:
2)点击「选择」按钮,设置主子报表均需要认证。
3)对用户 eoco 设置主报表的查看权限,用户 Tom 设置子报表查看权限,用户 Anna 对主子报表均无查看权限,如下图所示:
4)将主报表通过「添加链接」的方式,将模板挂载到目录,并为用户eoco设置主报表的查看权限,如下图所示:
2.1.2 预览效果
由于网络报表的超链会继承权限,所以用户 eoco 登录数据决策平台后,通过主报表可以直接查看子报表(如下几种打开方式均可:新窗口/平台内新标签/对话框/当前页/平台内当前标签页打开)。
用户 eoco 将子报表的预览链接发给用户 Tom 和用户 Anna,将存在如下两种情况:
1)在登录超时时间内:
用户 Tom 访问链接,可查看子报表。
用户 Anna 访问链接,需要登录数据决策系统,将出现提示:没有访问权限。
2)在登录超时时间外:
用户 Tom 访问链接,需要登录数据决策系统,可查看子报表且模板数据会按用户 Tom 的权限进行过滤。
用户 Anna 访问链接,需要登录数据决策系统,将出现提示:没有访问权限。
2.2 集成到其他系统中访问报表
将报表集成到自己的系统中打开,该场景下用户也需要通过模板认证配置模板权限。
这个时候超链打开的子报表,也需要继承主报表权限。这个也很常见,因为在报表很多的情况下,管理员通常只会设置主报表的权限,超链的子报表可能会很多,这个时候如果逐个设置权限会很麻烦。
同样为了便于理解,给出详细的用户操作场景示例说明:
1)角色权限认证
操作场景 | 认证&权限 | 预览效果 |
---|---|---|
用户A>打开主报表>超链打开子报表 |
|
|
用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器 |
| 访问链接将出现登录页面
|
用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到同一浏览器的新标签页 |
|
|
2)仅认证用户密码
操作场景 | 认证&权限 | 预览效果 |
---|---|---|
用户A>打开主报表>超链到子报表 | 主报表和子报表均需要认证 |
|
用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器 | 主报表和子报表均需要认证 | 访问链接将出现登录页面
|
用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到同一浏览器的新标签页 | 子报表需要认证 |
|
3)数字签名
操作场景 | 认证&权限 | 预览效果 |
---|---|---|
用户A>打开主报表>超链到子报表 | 主报表和子报表都需要认证 |
|
用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器 | ||
用户A>打开主报表>超链到报表2>拷贝子报表的 URL 到同一浏览器的新标签页 |
4)不开启认证
操作场景 | 预览效果 |
---|---|
打开主报表>超链到子报表 | 不需要登录,可一直查看主报表和子报表内容 |
打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器 | 不需要登录,可一直查看报主报表和子报表内容 |
打开主报表>超链到报表2>拷贝子报表的 URL 到同一浏览器的新标签页 | 不需要登录,可一直查看主报表和子报表内容 |