2. Установка и настройка Pentaho
-
Скачайте и установите Pentaho Community Edition.
-
Скачайте и распакуйте плагин Saiku Analytics (Meteorite BI) с http://www.pentaho.com/marketplace/
-
Перенесите папку
saiku
в папку$PENTAHO_HOME$/pentaho-server/pentaho-solutions/system
, где$PENTAHO_HOME
- папка, в которую установлен Pentaho. -
Плагин Saiku по умолчанию не поддерживает последние версии Pentaho Server. Чтобы избежать ошибок при сохранении отчёта, сделайте следующее:
-
Удалите файлы библиотек
cpf-core-6.0.0.0-353.jar
иcpf-pentaho5-6.0.0.0-353.jar
из папки$PENTAHO_HOME$/pentaho-server/pentaho-solutions/system/saiku/lib
. -
Скопируйте более новые версии этих библиотек из какой-либо другой папки в вашей версии Pentaho (например,
$PENTAHO_HOME$/pentaho-server/pentaho-solutions/system/sparkl/lib
или…/cgg/lib
) в папку$PENTAHO_HOME$/pentaho-server/pentaho-solutions/system/saiku/lib
:cpf-core-7.1.0.0-12.jar cpf-pentaho-7.1.0.0-12.jar cpk-core-7.1.0.0-12.jar cpk-pentaho5-7.1.0.0-12.jar
TipБиблиотеки
cpk-core…
иcpk-pentaho…
могут отсутствовать в вашей версии Pentaho. В этом случае используйте толькоcpf-core
иcpf-pentaho
.
-
-
Перейдите на http://licensing.meteorite.bi и создайте новую учётную запись. После валидации учётной записи создайте новую компанию и сгенерируйте для неё лицензию:
-
Войдите в систему и нажмите на кнопку CREATE NEW LICENSE.
-
В окне создания лицензии выберите тип лицензии COMMUNITY_EDITION.
-
Сохраните и скачайте файл лицензии. Переименуйте файл в
license.lic
и скопируйте его в папку$PENTAHO_HOME$/pentaho-server/pentaho-solutions/system/saiku
-
-
Скачайте и установите утилиту Pentaho Data Integration.
-
Измените порт Pentaho по умолчанию на 18081:
-
Перейдите в папку
$PENTAHO_HOME/server/pentaho-server/tomcat/conf
-
Измените порт Tomcat по умолчанию на 18081 в файле
server.xml
:
<Connector URIEncoding="UTF-8" port="18081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18443" />
-
-
Измените shutdown порт Tomcat по умолчанию на 8015 в файле
server.xml
, чтобы избежать пересечений с портом CUBA:<Server port="8015" shutdown="SHUTDOWN"> ... </Server>
-
Настройте аутентификацию пользователей CUBA в Pentaho:
-
Скачайте cuba-bi-pentaho-1.2.4.jar и скопируйте его в папку
$PENTAHO_HOME$/pentaho-server/tomcat/webapps/pentaho/WEB-INF/lib
. -
Скачайте cuba-bi-pentaho-1.2.4-plugin.zip, распакуйте архив и скопируйте папку
saiku-cuba-bi
в папку$PENTAHO_HOME/pentaho-server/pentaho-solutions/system
. -
Создайте новый файл
cuba-pentaho-community-authentication.xml
в папке$PENTAHO_HOME/pentaho-server/pentaho-solutions/system
со следующим содержимым:<?xml version="1.0" encoding="UTF-8"?> <!--+ | Application context containing FilterChainProxy. +--> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:sec="http://www.springframework.org/schema/security" xmlns:pen="http://www.pentaho.com/schema/pentaho-system" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.1.xsd http://www.pentaho.com/schema/pentaho-system http://www.pentaho.com/schema/pentaho-system.xsd" default-lazy-init="true"> <!-- ======================== FILTER CHAIN ======================= --> <!-- if you wish to use channel security, add "channelProcessingFilter," in front of "httpSessionContextIntegrationFilter" in the list below --> <bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy"> <constructor-arg> <util:list> <sec:filter-chain pattern="/webservices/**" filters="securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,cubaAuthenticationFilter,basicProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS" /> <sec:filter-chain pattern="/api/repos/**" filters="securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,cubaAuthenticationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS,preFlightFilter" /> <sec:filter-chain pattern="/api/**" filters="securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,cubaAuthenticationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS" /> <sec:filter-chain pattern="/plugin/reporting/api/jobs/**" filters="securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS,preFlightFilter" /> <sec:filter-chain pattern="/plugin/**" filters="securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS" /> <sec:filter-chain pattern="/**" filters="securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,httpSessionReuseDetectionFilter,logoutFilter,authenticationProcessingFilter,cubaAuthenticationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,sessionMgmtFilter,exceptionTranslationFilter,filterInvocationInterceptor" /> </util:list> </constructor-arg> </bean> <bean id="cubaAuthenticationProvider" class="com.haulmont.addon.bi.pentaho.CubaAuthenticationProvider"/> <!-- ======================== AUTHENTICATION ======================= --> <bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager"> <constructor-arg> <util:list> <ref bean="cubaAuthenticationProvider"/> <pen:bean class="org.springframework.security.authentication.AuthenticationProvider"/> <ref bean="anonymousAuthenticationProvider" /> </util:list> </constructor-arg> <property name="eraseCredentialsAfterAuthentication" value="false" /> <property name="authenticationEventPublisher"> <ref bean="defaultAuthenticationEventPublisher" /> </property> </bean> <bean id="cubaAuthenticationFilter" class="com.haulmont.addon.bi.pentaho.CubaPentahoAuthenticationFilter"> <property name="userRoleDao"> <ref bean="userRoleDaoTxn" /> </property> <property name="authenticationManager"> <ref bean="authenticationManager" /> </property> <property name="extraRoles" ref="extraRoles" /> <property name="cubaConnectionUrl" value="http://localhost:8080/app"/> </bean> </beans>
TipУкажите URL вашего приложения CUBA в свойстве
cubaConnectionUrl
бинаcubaAuthenticationFilter
.<property name="cubaConnectionUrl" value="http://localhost:8080/app"/>
-
Отредактируйте файл
pentaho-spring-beans.xml
в папкеpentaho-solutions/system
, добавив в него строку<import resource="cuba-pentaho-authentication.xml" />
после строки<import resource="applicationContext-spring-security.xml" />
:<import resource="applicationContext-spring-security.xml" /> <import resource="cuba-pentaho-community-authentication.xml" />
-
-
Запустите сервер Pentaho:
-
Перейдите в папку
$PENTAHO_HOME/pentaho-server
. -
Выполните
start-pentaho.bat
-