CAS做单点登陆(SSO)——集成BIEE 11g

狂风中的少年 提交于 2020-01-01 05:13:28

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,添加内容,如下:

[html]
<!-- ======================== 单点登录开始 ======================== --> 
    <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置--> 
    <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> 
    <!-- ======================== 单点登录结束 ======================== -->

<!-- ======================== 单点登录开始 ======================== -->
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
<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:

\浏览器缓存。

页面中嵌入BIEE
在页面中添加

[html]
<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;" />

<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;" />
效果如下:

\

来源:https://www.cnblogs.com/jerryxing/archive/2013/04/26/3044816.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!