zoukankan      html  css  js  c++  java
  • CAS做单点登陆(SSO)——集成BIEE 11g

    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.waranalytics-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>
    
    	<!-- ======================== 单点登录结束 ======================== -->
    

     

    其中serverNamebiee 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 clientjar(如:cas-client-core-3.2.1.jar)到WEB-INF/lib 

     

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

     

    例如:

    jar -cf analytics.war .

     

    然后在将analytics.waranalytics-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有三种取值,分别是prohibitsameDomainOnlyallow  大家可以根据自己的实际需要选择对应的值

      详情请

      参阅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


  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2998422.html
Copyright © 2011-2022 走看看