企业绩效管理网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 867|回复: 9

brio8登陆后会转到它自己的页面

[复制链接]

81

主题

389

帖子

575

积分

高级会员

Rank: 4

积分
575
QQ
发表于 2014-3-12 11:43:10 | 显示全部楼层 |阅读模式
有没有什么办法让Brio8登陆后转到自己的设定页面?
回复

使用道具 举报

73

主题

375

帖子

530

积分

高级会员

Rank: 4

积分
530
QQ
发表于 2014-3-12 12:23:28 | 显示全部楼层
Brio8的页面都是用servlet写的,我把Brio8的servlet都反编译过来,代码太多,看不过来。Brio8的文挡中也没有说明怎么通过其验证(应该是要设置servlet的session),真是麻烦。我觉得这种应用应该很常见:就是用自己的登录页面和主页面,登录时通过Brio的验证,这样就可以访问Brio发布的bqy文件了。
回复 支持 反对

使用道具 举报

80

主题

402

帖子

587

积分

高级会员

Rank: 4

积分
587
QQ
发表于 2014-3-12 12:25:24 | 显示全部楼层
主要是继承一个com.brio.portal.client.servletlogin.samples.DefaultLoginPolicy的类,然后改一下servlet的设置。
回复 支持 反对

使用道具 举报

87

主题

373

帖子

564

积分

高级会员

Rank: 4

积分
564
QQ
发表于 2014-3-12 12:31:12 | 显示全部楼层
那个类库在哪个文件里?
回复 支持 反对

使用道具 举报

67

主题

399

帖子

555

积分

高级会员

Rank: 4

积分
555
QQ
发表于 2014-3-12 13:06:11 | 显示全部楼层
恭喜呀!能不能与大家分享一下,说清楚一点!
回复 支持 反对

使用道具 举报

64

主题

373

帖子

515

积分

高级会员

Rank: 4

积分
515
QQ
发表于 2014-3-12 13:27:52 | 显示全部楼层
解开这个包,里面的readme说的比较清楚。主要步骤如下:
1、写一个java类实现com.brio.portal.client.servletlogin.LoginPolicy接口;
2、把这个类的class文件放入到Brio8servletsdeploymentWEB-INFclasses中;
3、开始菜单中的Servlet Configurator->User Interface -> Login panel中LoginPolicy改成你的java类名,用户名和密码改成$CUSTOM_LOGIN$。
4、重起jrun,ok!现在,你要访问发布的bqy什么的,就会从你自己定义的类中去取用户名和密码去验证了。
回复 支持 反对

使用道具 举报

81

主题

410

帖子

598

积分

高级会员

Rank: 4

积分
598
QQ
发表于 2014-3-12 13:31:28 | 显示全部楼层
Brio6的行级控制
典型情况:A省有A1..A10十个地市。对于统计数据,每个地市都只能看到本地市的数据,省中心的用户能看到全省的用户。
由于对于具体的某个分析都是一个bqy(指通过Brio Design等工具设计后存成的文件,下同),就必须根据登录用户的属性来设置它访问数据的权限。(也有做11个bqy的,但这只是权宜之计,不能算真正的解决方案),
我们可以通过Cookie的方式(Session.Cookies[""])或URL的方式(Session.URL[""])得到用户的相应属性。下面就是要把它和行级的控制
结合起来。一般来说,有三种方案:
1、在数据库端(或OLAP Server端)来控制用户的访问权限。也就是说登录的用户对数据的访问权限在后台的数据库(或OLAP Server)
就被设置好了。用户在Brio中访问数据的时候也只能看到相应的数据。
优点:安全性好,完全在后台就限制了用户的访问权限。
缺点:要做好Brio中用户与后台的同步,开发较为复杂。
2、在Brio的查询或OLAP查询中控制。如果是关系数据库就用limit的设置,如果是OLAP Server就用Filter。通过Brio得到用户的属性,
如果它拥有A1的访问权限,就在limit(或Filter)中添加A1,得到的结果就只有A1地市的数据。
优点:开发成本低,较灵活。
缺点:如果使用不当,可能存在效率问题。
3、在Brio的结果中限制用户的访问权限。也就是说整个结果已经存放在bqy中了,再根据不同的用户在EIS中显示不同地区的数据。
这种方式远存在严重的安全隐患,不建议使用。实际上,我们只要把页面上的bqy存在下来,在用Brio Designer打开就能看到所有的数据。
这种方式应用的背景是使用了BroadCast Server,定时的把结果更新到bqy中,用户查看的时候不需要从数据库中取数据。
优点:开发容易。
缺点:存在严重的安全隐患。
回复 支持 反对

使用道具 举报

77

主题

392

帖子

558

积分

高级会员

Rank: 4

积分
558
QQ
发表于 2014-3-12 16:13:43 | 显示全部楼层
eguoyang:你好,能否参考一下你的那个java类(如何实现com.brio.portal.client.servletlogin.LoginPolicy接口)?谢谢!
回复 支持 反对

使用道具 举报

77

主题

412

帖子

594

积分

高级会员

Rank: 4

积分
594
QQ
发表于 2014-3-12 16:17:42 | 显示全部楼层
我们现在的步骤是:
1、自己的登陆页面进行登陆验证,
2、成功后登陆验证BRIO8服务器,
3、登陆BRIO8服务器后,调用某个BQY的快捷方式,
4、通过该BQY指向你要登陆后转入的页面

实现代码:
在LOGIN.ASP中增加代码
1)增加一个FORM进行BRIO8服务器的认证;
          <FORM name=myJobForm METHOD=POST
        ACTION="/Brio/ihtml/OpenDoc?DocUUID=00000105372c59d4-0000-0473-c0a80013&DocVersion=1" >
        <input type=hidden name=ShowForm value=false>
        <input type=hidden name=user value='brio'>
        <input type=hidden name=pass value='123456'>
        <input type=hidden name=server value='myhost'>
</FORM>
注意ACTION部分是:指向Postlogon_home.bqy发布的快捷方式的地址:该页面的作用是登陆到BRIO8服务器上,在自动转向应用的主菜单页面。
          2)如果用户登陆应用成功后,进行BRIO8服务器的认证。
         <%If LoginState = True Then %>
           <script language="JavaScript" type="text/JavaScript">
                  myJobForm.submit();            
       </script>
        <%end if%>
回复 支持 反对

使用道具 举报

66

主题

382

帖子

540

积分

高级会员

Rank: 4

积分
540
发表于 2014-3-12 16:37:27 | 显示全部楼层
这里比较冷清,一年前的帖子有被顶起来。
wangxp_424:我说的实现接口只对Brio8有效,你看一下好像有一个jar包。可以找到。有一段时间不用Brio了。
jijinchang:很早就发现可以这么用,不过这不能称之为解决方案,安全性就不用说了,和系统的结合也是一个问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|企业绩效管理网 ( 京ICP备14007298号   

GMT+8, 2019-6-21 01:10 , Processed in 0.118866 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.1 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表