Pentaho Security ByPass


Buenas a todos:

Os traigo un hack que he modificado un poco a partir del que realizo jortilles. Mi problema  era que tenia que dar acceso a usuarios ha ciertos cuadros de mando o cubos y no quería que tuvieran que hacer login.

diagrama

Pentaho ya nos da la posibilidad de dar a ciertas rutas un acceso anónimo ,mediante spring-security.

Pero la verdad es, que es un poco infierno modificar ese aspecto de pentaho. De ahí que use este hack, que para mi es mas sencillo y fácil. Las necesidades eran claras.

  • Varias urls distintas.
  • Poder usar distintos usuarios y password y con ello tener distintos roles .

En el proyecto original usaba un fichero properties y podíamos tener varias  url pero no varios usuarios. En la modificación tenemos los siguientes campos:

  1.     username: Usuario de pentaho
  2.     password: Password de pentado
  3.     token: La semilla que queremos usar
  4.     typeSecurty: Por si queremos que al token se le añada algo dinámica-mente y hacerlo mas seguro.
  5.     dst: Arrays con las distintas url , cuando llamamos en la URL indicamos dentro del array que posición queremos.

url

y podemos tener tantos usuarios como necesitemos sin problema ninguno. Pero la  mejoraras evidente es que una vez que se carga el fichero en memoria ya no lo lee más veces se queda en la jvm .

 

Instalación

  • Instalamos las librerías en pentaho/WEB-INF/lib
  1. yamlbeans-xxx.jar
  2. byPassLoginPentaho.jar
  • Añadimos el fichero de configuración en pentaho/WEB-INF/classes (configuration.yml)
---
    username: "admin"
    password: "password"
    token: "admin"
    typeSecurty: false
    dst:
      - "/pentaho/api/repos/%3Apublic%3ASteel Wheels%3ADashboards%3ACTools_dashboard.wcdf/generatedContent"
      - "/pentaho/api/repos/%3Apublic%3ASteel Wheels%3ADashboards%3ACTools_dashboard.wcdf/generatedContent"
---
    username: "admin2"
    password: "password"
    token: "admin2"
    typeSecurty: false
    dst:
      - "/pentaho/api/repos/%3Apublic%3ASteel Wheels%3ADashboards%3ACTools_dashboard.wcdf/generatedContent"
      - "/pentaho/api/repos/%3Apublic%3ASteel Wheels%3ADashboards%3ACTools_dashboard.wcdf/generatedContent"

  • Añadimos el siguente filter tag de xml antes del Spring Security Filter Chain Proxy
<filter>
    <filter-name>PentahoCultomFilter</filter-name>
    <filter-class>com.pentaho.customFilter.PentahoCultomFilter<filter-class>
</filter>
  • Añadimos el siguente filter-mapping tag antes del Spring Security Filter Chain Proxy
  <filter-mapping>;
   <filter-name>PentahoCultomFilter</filter-name>
   <url-pattern>/FilterSecurity</url-pattern>
  </filter-mapping>
  • Vamos al final de la seccion de lo servlets y añadimos
     <servlet>
      <servlet-name>FilterSecurity</servlet-name>
      <servlet-class>com.pentaho.customFilter.FilterSecurity</servlet-class>
    </servlet>

     <servlet-mapping>
      <servlet-name>FilterSecurity</servlet-name>
      <url-pattern>/FilterSecurity</url-pattern>
    </servlet-mapping>
  • Y por ultimo vamos a pentaho-solutions/system/security.properties y activamos requestParameterAuthenticationEnabled
  requestParameterAuthenticationEnabled=true

En codigo esta en este repositorio.

Anuncios

Un comentario en “Pentaho Security ByPass

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s