-
-
dongy 小试身手Lv3
发表于2019-3-7 15:31
悬赏10
已解决
楼主
情况说明
XX系统要求为不同级别(全国及36个省份和地区)的用户展示相应地区的统计报表。如北京用户只能看到北京的统计结果,全国用户则可以看到各个地区及全国的统计情况
BI报表页面需要嵌入到XX系统中,其通过url请求获得BI系统的报表页面,用户在XX系统直接登录。
现在的实现方式为在BI系统中建立全国及各个地区的维表,字段为地区编码及对应的名称,在BI报表中设置权限控制,实现不同用户访问不同的数据,第三方系统用户信息直接通过URL传递URL,格式如下:
http://IP:8091/BI461/esmain/login.do?id=${user.unitCode!}&pw=******&url=../showreport.do?showmenu=false%26resid=EBI$12$UCRQSINF8UX3UIOCLP5T9VRF7ICCINRR$1$CNU6SLTNIP4LU5YN0AKUSDUIMUNO0YW9.rpttpl
现用户在使用XX系统访问报表时,会出现如图所示无权限访问的情况。经初步判断,为金融广告系统在为不同用户并发请求报表资源时,由于金融广告系统IP地址唯一,后请求的用户将占据先请求用户的sessionID,从而导致该session的权限发生变化,先请求用户无法正常访问。对于这种情况 是否有同事有解决思路呀

最佳答案
dongy 发表于 2019-3-8 16:05
做表方式不是数据源的方式,权限控制是根据用户所在机构对应的地区维度区分的。不同用户对应的地区是不一 ...
从您的描述来看,B登录后不应该访问A现在访问的页面(BI报表模板rpt1),在BI系统中B用户本身也没有rpt1的查看权限。
那么B登录第三方系统后,点击链接去访问BI报表,具体是访问到哪一张报表,是由第三方系统挂载的url中的参数resid决定的,参数指定访问哪张报表,就会访问到哪张报表。从您的截图和url地址来看,是同一张报表模板,没有问题。
那么如果希望B登录第三方系统后,点击链接去访问的BI报表,跟A登录后访问到的BI报表不同,就需要在第三方系统中做权限控制,让B和A能看到的链接中的resid参数不同。
期待您的验证与再次反馈。
8个回答
有几点疑问:
1、看您的链接中没有带用户名和密码,那么第三方系统是否跟BI做了单点登录呢?
2、是怎么控制数据权限的呢?通过数据级次权限还是在过滤条件中控制的呢?
3、报表中是否用的是sql数据源的方式做表的呢?如果是的话,需要勾选“执行sql数据源”的权限的。
缱绻 发表于 2019-3-7 15:37
有几点疑问:
1、看您的链接中没有带用户名和密码,那么第三方系统是否跟BI做了单点登录呢?
2、是怎么控制 ...
做表方式不是数据源的方式,权限控制是根据用户所在机构对应的地区维度区分的。不同用户对应的地区是不一样的。链接中的id和pw就是用户名和密码。这些功能单个用户使用都是正常的 ,问题出在多用户并发的时候。我估计情况是这样的:比如说A正在登陆,查看页面正常,这时B也登陆,访问到BI的页面就自动访问A现在访问的页面,而不是B本来应该看到的,从而导致权限不足。 由于我单位没网,上论坛比较慢 回复的比较慢 十分感谢您回帖
dongy 发表于 2019-3-8 16:05
做表方式不是数据源的方式,权限控制是根据用户所在机构对应的地区维度区分的。不同用户对应的地区是不一 ...
是会在同一台电脑上的同一浏览器访问不同用户的报表吗??
dongy 发表于 2019-3-8 16:25
不是同一台电脑 应该是不同电脑上的不同用户同时访问同一张报表
哦哦,如果是在同一个浏览器访问不同用户的报表,那可能存在被迫下线的可能,这个您要确认一下。您这边BI具体的版本号是多少呢?
dongy 发表于 2019-3-8 16:05
做表方式不是数据源的方式,权限控制是根据用户所在机构对应的地区维度区分的。不同用户对应的地区是不一 ...
从您的描述来看,B登录后不应该访问A现在访问的页面(BI报表模板rpt1),在BI系统中B用户本身也没有rpt1的查看权限。
那么B登录第三方系统后,点击链接去访问BI报表,具体是访问到哪一张报表,是由第三方系统挂载的url中的参数resid决定的,参数指定访问哪张报表,就会访问到哪张报表。从您的截图和url地址来看,是同一张报表模板,没有问题。
那么如果希望B登录第三方系统后,点击链接去访问的BI报表,跟A登录后访问到的BI报表不同,就需要在第三方系统中做权限控制,让B和A能看到的链接中的resid参数不同。
期待您的验证与再次反馈。