最新历史版本 :模板认证下的超级链接继承权限 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本

11.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)点击「选择」按钮,设置主子报表均需要认证

2023-03-07_14-06-07.png

3)对用户 eoco 设置主报表的查看权限,用户 Tom 设置子报表查看权限,用户 Anna 对主子报表均无查看权限,如下图所示:

2023-03-07_14-08-46.png

4)将主报表通过「添加链接」的方式,将模板挂载到目录,并为用户eoco设置主报表的查看权限,如下图所示:

2023-03-07_14-13-48.png

2.1.2 预览效果

由于网络报表的超链会继承权限,所以用户 eoco 登录数据决策平台后,通过主报表可以直接查看子报表(如下几种打开方式均可:新窗口/平台内新标签/对话框/当前页/平台内当前标签页打开)。

用户 eoco 将子报表的预览链接发给用户 Tom 和用户 Anna,将存在如下两种情况:

1)在登录超时时间内:

  • 用户 Tom 访问链接,可查看子报表。

  • 用户 Anna 访问链接,需要登录数据决策系统,将出现提示:没有访问权限。

2)在登录超时时间外:

  • 用户 Tom 访问链接,需要登录数据决策系统,可查看子报表且模板数据会按用户 Tom 的权限进行过滤。

  • 用户 Anna 访问链接,需要登录数据决策系统,将出现提示:没有访问权限。

2.2 集成到其他系统中访问报表

将报表集成到自己的系统中打开,该场景下用户也需要通过模板认证配置模板权限。

这个时候超链打开的子报表,也需要继承主报表权限。这个也很常见,因为在报表很多的情况下,管理员通常只会设置主报表的权限,超链的子报表可能会很多,这个时候如果逐个设置权限会很麻烦。

同样为了便于理解,给出详细的用户操作场景示例说明:

1)角色权限认证

操作场景认证&权限预览效果
用户A>打开主报表>超链打开子报表
  • 主报表和子报表均设置角色权限认证

  • 用户A有主报表的查看权限,无子报表的查看权限

  • 在登录超时时间内,用户A可直接查看子报表

  • 在登录超时时间外,提示登录,用户A登录不可查看子报表,需要重新用主报表的超链打开,且主报表也需要重新登录

用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器
  • 主报表和子报表均设置角色权限认证

  • 用户A有主报表的查看权限,无子报表的查看权限

  • 用户B仅有子报表的查看权限

    访问链接将出现登录页面

    • 在登录超时时间内,用户A登录后可查看报表2,用户B登录后,可正常查看报表2中的有权限数据

    • 在登录超时时间外,用户A登录不可查看子报表,需要重新用主报表的超链打开,用户B登录后,可正常查看报表2中的有权限数据


    用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到同一浏览器的新标签页
    • 子报表需要认证

    • 用户A有主报表的查看权限,无子报表的查看权限

    • 在登录超时时间内,用户A无需登录可查看子报表

    • 在登录超时时间外,提示登录,用户A登录后不可查看子报表,需要重新用主报表的超链打开

    2)仅认证用户密码

    操作场景认证&权限预览效果
    用户A>打开主报表>超链到子报表主报表和子报表均需要认证
    • 在登录超时时间内,无需登录任意用户均可查看子报表

    • 在登录超时时间外,提示登录,任意用户登录可正常查看子报表内容

    用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器

    主报表和子报表均需要认证

    访问链接将出现登录页面

    • 在登录超时时间内,用户A登录后可查看子报表,用户B登录后,可查看子报表中有权限的数据

    • 在登录超时时间外,需要重新登录,用户A登录后正常查看子报表,用户B登录后,可正常查看

    用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到同一浏览器的新标签页子报表需要认证
    • 在登录超时时间内,用户A无需登录即可查看报表2

    • 在登录超时时间外,用户A需重新登录可正常

    3)数字签名

    操作场景认证&权限预览效果
    用户A>打开主报表>超链到子报表主报表和子报表都需要认证
    • 在登录超时时间内,用户A可查看子报表

    • 在登录超时时间外,子报表可查看,需要重新用主报表的超链打开,但要确保主报表的数字签名未超时,否则无效

    用户A>打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器
    用户A>打开主报表>超链到报表2>拷贝子报表的 URL 到同一浏览器的新标签页

    4)不开启认证

    操作场景预览效果
    打开主报表>超链到子报表不需要登录,可一直查看主报表和子报表内容
    打开主报表>超链到子报表>拷贝子报表的 URL 到新的浏览器不需要登录,可一直查看报主报表和子报表内容
    打开主报表>超链到报表2>拷贝子报表的 URL 到同一浏览器的新标签页不需要登录,可一直查看主报表和子报表内容