BIEE 11G和CAS集成零代码编写,只需配置。

更改BIEE analytics应用的web.xml

将analytics.war解包(使用7-zip或者Win-rar就可以),然后修改WEB-INF下的web.xml

注:analytics.ear可以从$MV_HOME/Oracle_BI1/bifoundation/jee下找到,将analytics.ear解压之后得到analytics.war和analytics-ws.war

修改过的web.xml,添加内容,如下:

<!-- ======================== 单点登录开始 ======================== -->
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener> <!-- 该过滤器负责用户的认证工作,必须启用它 -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://sso.aurora-framework.org:8081/cas/login</param-value>
<!--这里的server是服务端的IP-->
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://sso.aurora-framework.org:9704</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://sso.aurora-framework.org:8081/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://sso.aurora-framework.org:9704</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!--
该过滤器负责实现HttpServletRequest请求的包裹,
比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。
-->
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>
org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!--
该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。
比如AssertionHolder.getAssertion().getPrincipal().getName()。
-->
<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- ======================== 单点登录结束 ======================== -->

其中serverName是biee analytics的地址和端口,当前配置cas项目和biee在同一台机器上,所以用相同的,请更加项目实际情况,修改为biee实际部署的机器地址。

添加证书

Biee作为一个应用安装在weblogic服务器上,weblogic使用的jvm不一定是系统安装的,可以在这里(console->bifoundation->环境->服务器->bi_server1->密钥库)找到weblogic使用的jvm:

修改“java标准信任密钥库密码短语”,输入默认密码changeit。

并把上文中提到的aurora.crt文件导入到“java标准信任密钥库”指定的目录中,这里是“D:/BIEE11116/jrockit_160_24_D1.1.2-4/jre/lib/security/cacerts”。所以完整语句是:

keytool -import -keystore "D:/BIEE11116/jrockit_160_24_D1.1.2-4/jre/lib/security/cacerts" -file E:/tomcat/tomcat7/keystore/aurora.crt -alias aurora

注意:如果weblogic使用的jvm不是sun公司提供的,那么导入没有问题,在运行时,会报证书已经破损的错误。此时需要修改$MV_HOME\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd(这里是windows,如果是unix应该找到setDomainEnv.sh)文件,在末尾添加

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dfile.encoding=GBK -DUseSunHttpHandler=true 

修改完毕之后还需要将CAS client的jar包(如:cas-client-core-3.2.1.jar)到WEB-INF/lib

修改完毕之后,使用JDK自带的jar 进行重新打包,

例如:

jar -cf analytics.war .

然后在将analytics.war及analytics-ws.war以及之前同级目录下的META-INF文件夹一同打包成analytics.ear

例如:

jar -cf analytics.ear .

之后在到weblogic console中重新部署该应用,并启动。

在到em里对BI启用SSO

如下图所示:

激活更改,重启opmn所有组件就OK了。

访问BIEE

在浏览器中输入http://sso.aurora-framework.org:9704/analytics/saw.dll?bieehome

自动跳转为

把biee页面作为iframe嵌入到java web项目页面中

默认情况下,出于安全的考虑,BIEE 11g是不能直接嵌入iframe中的,会提示“OBIEE content can not be displayed in the IFrame”。

如果有这方面的需要,我们需要进行如下配置:

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

    在Security标签内加入allow。

    如下图所示:

    <Security>
    <InIFrameRenderingMode>allow</InIFrameRenderingMode>
    <ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
    </Security>

    注:

    InIFrameRenderingMode有三种取值,分别是prohibit、sameDomainOnly、allow  大家可以根据自己的实际需要选择对应的值

    详情请

    参阅B.1.1 Protecting Pages in Oracle BI EE from Attack

  2. 修改$MV_HOME/Oracle_BI1/bifoundation/web/app/WEB-INF 目录下的web.xml
    添加如下内容:
    oracle.adf.view.rich.security.FRAME_BUSTING
    never

    效果如下:

    修改完之后重启BI服务即可,如果还不行,请清除浏览器缓存。

  3. 页面中嵌入BIEE

在页面中添加

<iframe id="biee" frameborder="no" width="1170" height="545" src="http://sso.aurora-framework.org:9704/analytics/saw.dll?bieehome" style="broder:none;margin:0;padding:0;" />

效果如下:

参考文章

http://blog.csdn.net/lele5000/article/details/7884268

http://blog.sina.com.cn/s/blog_6e7f1ab301015thf.html

CAS做单点登陆(SSO)——集成BIEE 11g的更多相关文章

  1. Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析

    Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...

  2. 解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题

    解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring S ...

  3. CAS单点登陆 SSO

    什么是单点登陆 SO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制.它是目前比较流行的企业业务整合的解决方 ...

  4. CAS实现单点登录SSO执行原理及部署

    一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...

  5. ASP.NET在不同情况下实现单点登陆(SSO)的方法

    第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...

  6. 在多点环境下使用cas实现单点登陆及登出

    CAS 介绍 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.CAS 具有以下特 ...

  7. CAS实现单点登录SSO执行原理探究超详细

    一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...

  8. 单点登录(SSO)解决方案之 CAS客户端与Spring Security集成

    接上篇:单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造 Spring Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制 ...

  9. Lind.DDD.SSO单点登陆组件的使用(原创)

    回到目录 一般sso的说明 在Lind.DDD框架里,有对单点登陆的集成,原理就是各个网站去sso网站统一登陆授权,之后在sso网站将登陆的token进行存储,存储方式随你(cache,redis,m ...

随机推荐

  1. Codeforces 234D Cinema

    这题做的我好苦啊,编码调试整整搞了一个多小时,而且调到天昏地暗才调出来.. 回归正题,这题是一道本人做过的比较烦,比较无聊的题之一.题意是一个人,在m个影星里有k个喜欢的影星,然后给出n场电影,每场电 ...

  2. Auto Clear Unity Console Log

    功能 可以在Editor模式下执行,当然也可以Runtime模式下执行,自动清除 Console的log信息 功能需求 当在制作Editor的一些功能时,常常需要手动的点击Console窗口的Clea ...

  3. Unity2D之让土豆人动起来

    Unity2D功能 Unity3D最新的4.3版本,其中最大的新功能就是这个2D工具了.我这里简单介绍一下这个2D工具是怎样使用的. 首先,在我们创建项目的时候,面板上面多了一个2d和3d的选择,这两 ...

  4. MongoDB学习(二)Windows环境安装MongoDB

    MongoDB的官方下载站是http://www.mongodb.org/downloads,可以去上面下载最新的程序下来. 在下载页面可以看到,对操作系统支持很全面,OS X.Linux.Windo ...

  5. 安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)

    时序图 用例图

  6. java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

    字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 private static void write() throws IO ...

  7. Lua笔记(2)

    函数高级特性 像新版c++一样,lua支持lambda表达式.也就是可以在函数内部声明函数.内层的函数可以访问外一层函数的局部变量. 一个函数以及它会访问到的外层函数的变量,称为闭包.这些变量又被称为 ...

  8. AVR/Arduino定时/计数器、中断入门

    在Arduino中,可以使用AnalogWrite来使用硬件产生490Hz/980Hz的pwm波,并可根据参数来设定占空比.不了解这个的同学可以去AnalogWrite学习下,SecretsOfArd ...

  9. Linux 字符集转化

    命令行"iconv --list" 查看Linux操作系统支持的字符集 iconv_open 设置字符集转化 --iconv_t iconv_open(const char *to ...

  10. windows7下修改hosts文件无效解决办法

    通常会为了开发方便.或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例: