Removiendo la seguridad de Pentaho



Removiendo la seguridad de Pentaho.

No se puede remover la seguridad de pentaho, pero se puede configurar para que efectivamente no haya seguridad  (creando un solo usuario anónimo y dándole acceso). Basado en http://wiki.pentaho.com/display/ServerDoc2x/Removing+Security.

1.   Definir el rol anónimo, tomar nota que ya esta definido por defecto.

applicationContext-spring-security.xml
<bean id="anonymousProcessingFilter" class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter">
  <!-- omitted -->
  <property name="userAttribute" value="anonymousUser,Anonymous" />
</bean>

2.   Permitir acceso anónimo a todos los  recursos webs editando objectDefinitionSource de  FilterSecurityInterceptor   para que sea como el ejemplo de líneas abajo:

applicationContext-spring-security.xml
<bean id="filterInvocationInterceptor"
  class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
  <property name="authenticationManager">
    <ref local="authenticationManager" />
  </property>
  <property name="accessDecisionManager">
    <ref local="httpRequestAccessDecisionManager" />
  </property>
  <property name="objectDefinitionSource">
    <value>
      <![CDATA[
        CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
        \A/.*\Z=Anonymous,Authenticated
      ]]>
    </value>
  </property>
</bean>

3.   Utilizar PentahoAllowAnonymousAclVoter como tu implementación de  IaclVoter. Se configura  la implementación de IAclVoter en pentahoObjects.spring.xml y en pentaho.xml.  Al configurar este votador, se definirá usuario y rol anónimo y ese usuario y/o rol se debe usar al asignar ACLs.

pentaho.xml
<pentaho-system>
 
  <!-- omitted -->
 
  <anonymous-authentication>
    <anonymous-user>anonymousUser</anonymous-user>
    <anonymous-role>Anonymous</anonymous-role>
  </anonymous-authentication>
 
  <!-- omitted -->
 
</pentaho-system>
pentahoObjects.spring.xml
<beans>
 
  <!-- omitted -->
 
  <bean id="IAclVoter" class="org.pentaho.platform.engine.security.acls.voter.PentahoAllowAnonymousAclVoter" scope="singleton" />
 
  <!-- omitted -->
 
</beans>

4.   Decirle a pentaho el rol que debe ser tratado cómo administrador, en este caso es el rol mencionado anteriormente:

pentaho.xml
<pentaho-system>
 
  <!-- omitted -->
 
  <acl-voter>
    <admin-role>Anonymous</admin-role>
  </acl-voter>
 
  <!-- omitted -->
 
</pentaho-system>

5.   Cambiar a un repositorio de soluciones basado en archivos. (El repositorio de soluciones  es basado en base de datos, cuya única diferencia es el control de acceso para archivos de soluciones). Reemplaza  el bean IsolutionRepository con el siguiente bean:

<bean id="ISolutionRepository" class="org.pentaho.platform.repository.solution.filebased.FileBasedSolutionRepository" scope="session" />

6.   Cambia a un repositorio de metada que desconoza la seguridad. (El repositorio de metada por defecto reconoce la seguridad y tiene control de acceso a los objetos de metadata). Reemplaza el bean  IMetadataDomainRepository  por el siguiente bean:


<bean id="IMetadataDomainRepository" class="org.pentaho.platform.plugin.services.metadata.MetadataDomainRepository" scope="singleton"/>

Comentarios

Entradas populares