程序员人生 网站导航

第三方系统通过IFrame的方式访问BIEE报表

栏目:数据库应用时间:2014-12-13 09:07:21
BIEE开发的报表常常会与现有系统集成 ,通常可以用iframe的方式嵌入到需要集成的系统,在这里有两种方式可以集成 :

1,通过SSO,将BI与业务集成做单点登录,可以参考类似“BI 与CAS的文章”,这类文章很多。这类方式的安全性比较好。

2,直接在集成的URL中带上NQUser、NQPassword在没有安全性要求不高的情况下是最简单经济的1种方式,需要注意的是需要集成的系统与BI在同1个域中,不然会出现2次登录的情况 。

默许情况下BIEE不能直接使用iframe ,需要修改1些配置来达成我们的目的,步骤以下:
 

1、修改$BI_HOME/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1/目录下的instanceconfig.xml

找到<Security>...</Security>这1段,以下:
<Security>
<!--This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control-->
<ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
</Security>

添加:
<InIFrameRenderingMode>allow</InIFrameRenderingMode> 

完成后<Security>...</Security>段的内容为:
<Security>
<!--This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control-->
<InIFrameRenderingMode>allow</InIFrameRenderingMode> 
<ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
</Security>

2、修改$BI_HOME/home/oraclebi/biee/Oracle_BI1/bifoundation/web/appv2/web.xml
        这里注意1下:appv2,可能您的实际环境是app,目前我的版本是11.1.1.7,似乎11.1.1.6是app,具体缘由也没深究了,只要路径对了就能够了。
        添加以下内容:
<context-param>
  <param-name>Oracle.adf.view.rich.security.FRAME_BUSTING</param-name>
  <param-value>never</param-value>
</context-param>

修改完以后重启BI服务并清除阅读器缓存,若还是出现“OBIEE content can not be displayed in the IFrame

          可能您是使用的方式2的集成 ,并且直接通过IP的方式而不是通过域名的方式来访问的,当您再次访问就OK了,这也就是我在开头提到的“2次登录的情况”,需要注意。


总结:通过IFrame方式集成biee,最好是通过做单点登录(SSO)的方式,安全性高;若无条件的话只能简单集成,需要注意被集成系统与BIEE服务器需要通过域名访问的方式进行交互。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐