首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成Pentaho 7社区版与SSO CAS

集成Pentaho 7社区版与SSO CAS
EN

Stack Overflow用户
提问于 2017-04-01 03:08:44
回答 1查看 647关注 0票数 0

我想用SSO apereo CAS连接pentaho bi-server CE版本7。

我使用了这个链接integration Pentaho BA 7 community edition with CAS,但仍然收到该链接中提到的以下错误:

代码语言:javascript
复制
 Cannot find class for publish type: INTERFACES specified on publish of bean id: casAuthenticationProvider

由于这是第一次在CAS上安装pentaho,我想知道applicationContext-security-cas.xml是否适合使用,所以如果有人能为这个版本提供一些的话,我将不胜感激。

使用的applicationContext-security-cas.xml:

代码语言:javascript
复制
<!-- ======================== FILTER CHAIN ======================= -->

<!-- overridden from applicationContext-spring-security.xml to enable CAS -->
  <bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy">
    <property name="filterInvocationDefinitionSource">
      <!--
           You can safely remove the first pattern starting with /content/dashboards/print, if you're not using
           Enterprise Dashboards or not allowing printing of Dashboards,
       -->
      <value>
        <![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
        PATTERN_TYPE_APACHE_ANT
        /api/repos/dashboards/print=securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,preAuthenticatedSecurityFilter,httpSessionReuseDetectionFilter,logoutFilter,casProcessingFilter,authenticationProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
        /webservices/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /api/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /plugin/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /**=securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,httpSessionReuseDetectionFilter,logoutFilter,casProcessingFilter,authenticationProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor]]>
      </value>
    </property>
  </bean>



    <!-- ======================== FILTER CHAIN WITH SIGNOUT ======================= -->
<!-- 
    <bean id="filterChainProxy"
         class="org.springframework.security.util.FilterChainProxy">
         <property name="filterInvocationDefinitionSource">
              <value>
                   <![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                   PATTERN_TYPE_APACHE_ANT
                   /**=securityContextHolderAwareRequestFilter,httpSessionContextIntegrationFilter,logoutFilter,casSingleSignOutFilter,casProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor]]>
              </value>
         </property>
    </bean>

          <bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy">
        <property name="filterInvocationDefinitionSource">
          <!--
               You can safely remove the first pattern starting with /content/dashboards/print, if you're not using
               Enterprise Dashboards or not allowing printing of Dashboards,
           --> <!-- 
          <value>
            <![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
            PATTERN_TYPE_APACHE_ANT
            /api/repos/dashboards/print=securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,preAuthenticatedSecurityFilter,httpSessionReuseDetectionFilter,logoutFilter,casSingleSignOutFilter,casProcessingFilter,authenticationProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
            /webservices/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casSingleSignOutFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
            /api/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casSingleSignOutFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
            /plugin/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,casSingleSignOutFilter,casProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
            /**=securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,httpSessionReuseDetectionFilter,logoutFilter,casSingleSignOutFilter,casProcessingFilter,authenticationProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor]]>
          </value>
        </property>
  </bean>
    <bean id="casSingleSignOutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter"/>
 -->

<!-- ===================== HTTP REQUEST SECURITY ==================== -->

<bean id="serviceProperties"
    class="org.springframework.security.ui.cas.ServiceProperties">
    <property name="service"
        value="http://localhost:8080/pentaho/j_spring_cas_security_check" />
    <property name="sendRenew" value="false" />
</bean>

<!-- replaces authenticationProcessingFilter in filterChainProxy above -->
<bean id="casProcessingFilter"
    class="org.springframework.security.ui.cas.CasProcessingFilter">
    <property name="authenticationManager">
        <ref bean="authenticationManager" />
    </property>
    <property name="authenticationFailureUrl" value="/casFailed" />
    <property name="defaultTargetUrl" value="/" />
    <property name="filterProcessesUrl"
        value="/j_spring_cas_security_check" />
</bean>

<!-- overridden from applicationContext-spring-security.xml -->
<bean id="exceptionTranslationFilter"
    class="org.springframework.security.ui.ExceptionTranslationFilter">
    <property name="authenticationEntryPoint">
        <ref local="casProcessingFilterEntryPoint" />
    </property>
    <property name="accessDeniedHandler">
        <bean class="org.springframework.security.ui.AccessDeniedHandlerImpl" />
    </property>
</bean>

<bean id="casProcessingFilterEntryPoint" class="org.springframework.security.ui.cas.CasProcessingFilterEntryPoint">
    <property name="loginUrl"
        value="https://localhost:8443/cas/login" />
    <property name="serviceProperties">
        <ref local="serviceProperties" />
    </property>
</bean>
<bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager">
<property name="providers">
   <list>
<ref bean="casAuthenticationProvider"/>
<ref bean="anonymousAuthenticationProvider"/>
</list>
</property>

代码语言:javascript
复制
    <bean id="casAuthenticationProvider"
    class="org.springframework.security.providers.cas.CasAuthenticationProvider">
    <property name="userDetailsService">
        <ref bean="userDetailsService" />
    </property>
    <property name="serviceProperties">
        <ref local="serviceProperties" />
        </property>
    <property name="ticketValidator">
        <ref local="ticketValidator" />
    </property>
    <property name="key"
        value="my_password_for_this_auth_provider_only" />
        <pen:publish as-type="INTERFACES">
        <pen:attributes>
            <pen:attr key="providerName" value="cas"/>
        </pen:attributes>
        </pen:publish>          
</bean>

<bean id="ticketValidator"
    class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<constructor-arg index="0" value="https://localhost:8443/cas" />
</bean>

<!-- overridden from applicationContext-spring-security.xml to specify logoutSuccessUrl as CAS logout page -->
<bean id="logoutFilter"
    class="org.springframework.security.ui.logout.LogoutFilter">
    <constructor-arg
        value="https://localhost:8443/cas/logout?url=http://localhost:8080/pentaho/index.jsp" />
    <!-- URL redirected to after logout -->
    <constructor-arg>
        <list>
            <bean
                class="org.pentaho.platform.web.http.security.PentahoLogoutHandler" />
            <bean
                class="org.springframework.security.ui.logout.SecurityContextLogoutHandler" />
        </list>
    </constructor-arg>
    <property name="filterProcessesUrl" value="/Logout" />
</bean>

EN

回答 1

Stack Overflow用户

发布于 2018-02-06 03:53:18

看起来您的bean id仍然指向旧的spring框架类。

将bean id ="casAuthenticationProvider“上的类从class="org.springframework.security.providers.cas.CasAuthenticationProvider”改为指向class="org.springframework.security.cas.authentication.CasAuthenticationProvider“

试一试,让我知道它的进展如何。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43148000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档