2017-03-31 4 views
0

pentahoバイサーバCEバージョン7とSSO apereo CASを接続したいと思います。インテグレーションPentaho 7 Community Edition with SSO CAS

私は、このリンクintegration Pentaho BA 7 community edition with CASに続き、まだそのリンクに記載された 次のエラーを取得しています:

Cannot find class for publish type: INTERFACES specified on publish of bean id: casAuthenticationProvider 

これはCASとの最初のPentahoのインストールですので、ApplicationContextのセキュリティ-cas.xmlがある場合、私は疑問に思って誰にでもこのバージョンのものを提供できるかどうかは分かります。

使用

ApplicationContextのセキュリティ-cas.xml:

<!-- ======================== 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> 

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

答えて

0

あなたの豆のIDがまだ古いSpringフレームワークのクラスを指しているように見えます。

変更の代わりにクラス=「org.springframework.security.providers.cas.CasAuthenticationProvider」のクラス=「org.springframework.security.cas.authentication.CasAuthenticationProvider」を指すように、あなたの豆ID =「casAuthenticationProvider」のクラス

それを試して、それがどうなるか教えてください。

関連する問題