Hola, yo no recompilé Pentaho, tan solo cree una clase que permitiera autenticarse con LDAP y Base de datos, despues configuré Spring para que hiciera uso de esa clase.
Te explico, Spring trabaja a partir de ficheros de configuración ".xml", en uno de ellos dentro de la solución (pentaho-spring-beans.xml) dice que autenticación utilizar.
Ahora bien, como configurarlo depende mucho de que es lo que necesitas, por ejemplo, en mi caso necesitaba hacer la autenticación con un LDAP inmutable (que no puede ser modificado, almenos por mi), el cual me validaria a mis usuarios, pero los roles los debia obtener de base de datos (aclaro que la base de datos no tiene contraseñas), como no podia validar usuarios por ahi, lo que hice fue: en eclipse cree un nuevo proyecto Java, le agregue como librerias externas las de Spring que utiliza Pentaho, y creé una clase que extendiera del LdapProvider, la cual recibe como parametro un DAOProvider (que es el de base de datos). Una vez autenticado via LDAP lo que hice fue solicitarle los roles al DAOProvider, a sabiendas que las contraseñas que mando son vacias, y en la base de datos coloque una vista hacia la tabla usuarios con todas las contraseñas vacias. Posteriormente en el archivo antes mensionado hice referencia aun nuevo archivo creado por mi, el cual tenia como provider la clase que yo cree (El Jar generado solo lo agregue al WEB-INF/lib). Pero dejando como userDetails el del proveedor DAO.
Si el Ldap o Servicio que piensas utilizar contiene las mismas contraseñas que la base de datos la solución es mas sencilla. basta con que configures el LDAP pero dejes el User details del DAO. (omitirias la creacion de la clase).
Espero haberte podido ayudar, ya que a mi nadie me contesto de las preguntas que formulé. jajaja.
Comentario (3 comentarios)
Ahora bien, como configurarlo depende mucho de que es lo que necesitas, por ejemplo, en mi caso necesitaba hacer la autenticación con un LDAP inmutable (que no puede ser modificado, almenos por mi), el cual me validaria a mis usuarios, pero los roles los debia obtener de base de datos (aclaro que la base de datos no tiene contraseñas), como no podia validar usuarios por ahi, lo que hice fue: en eclipse cree un nuevo proyecto Java, le agregue como librerias externas las de Spring que utiliza Pentaho, y creé una clase que extendiera del LdapProvider, la cual recibe como parametro un DAOProvider (que es el de base de datos). Una vez autenticado via LDAP lo que hice fue solicitarle los roles al DAOProvider, a sabiendas que las contraseñas que mando son vacias, y en la base de datos coloque una vista hacia la tabla usuarios con todas las contraseñas vacias. Posteriormente en el archivo antes mensionado hice referencia aun nuevo archivo creado por mi, el cual tenia como provider la clase que yo cree (El Jar generado solo lo agregue al WEB-INF/lib). Pero dejando como userDetails el del proveedor DAO.
Si el Ldap o Servicio que piensas utilizar contiene las mismas contraseñas que la base de datos la solución es mas sencilla. basta con que configures el LDAP pero dejes el User details del DAO. (omitirias la creacion de la clase).
Espero haberte podido ayudar, ya que a mi nadie me contesto de las preguntas que formulé. jajaja.
Saludos.
De igual forma, si puedo ayudarte en algo solo comentalo. Soy nuevo con BI y Pentaho, pero a eso se viene al mundo (a aprender), cuidate.
Necesitas ser un miembro de Open Business Intelligence para añadir comentarios!
Participar en Open Business Intelligence