Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Adding ability to have multiple authentication type in pentaho

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 build-res
Octocat-spinner-32 nbproject
Octocat-spinner-32 resources
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.md
Octocat-spinner-32 build.properties
Octocat-spinner-32 build.xml
Octocat-spinner-32 gpl-2.0.txt
Octocat-spinner-32 ivy.xml
Octocat-spinner-32 ivysettings.xml
Octocat-spinner-32 manifest.mf
Octocat-spinner-32 nbbuild.xml
README.md

Multiple Authentication Providers in Pentaho

Objective

The goal of this project is to add support for multiple authentication in Pentaho. Currently, there are several providers that can be used, like LDAP, hibernate and jdbc, but it's not possible to use several at the same time.

This project allows for that by implementing a bean that will cycle through all the desired providers

How to use

Following this steps should get you going:

Compile the project

Just run ant and you should be all set

Deploy the jar in Pentaho

Copy the resulting file to pentaho's lib dir, (eg: /pentaho/server/webapps/pentaho/WEB-INF/lib/).

Copy the muiltiple provider spring config files to solution/system

Copy the following files from resources/ to pentaho-solutions/system/:

  • applicationContext-spring-security-multiple.xml
  • applicationContext-pentaho-security-multiple.xml

Change pentaho-spring-beans.xml to load the new files

Leave all the existing files there, add these 2 new config files

pentaho-spring-beans.xml should then look something like:

<beans>
  (...)
  <import resource="applicationContext-spring-security.xml" />

  <import resource="applicationContext-spring-security-superuser.xml" />
  <import resource="applicationContext-pentaho-security-superuser.xml" />

  <import resource="applicationContext-common-authorization.xml" />

  <import resource="applicationContext-spring-security-memory.xml" />
  <import resource="applicationContext-pentaho-security-memory.xml" />

  <import resource="applicationContext-spring-security-ldap.xml" />
  <import resource="applicationContext-pentaho-security-ldap.xml" />

  <import resource="applicationContext-spring-security-jackrabbit.xml" />
  <import resource="applicationContext-pentaho-security-jackrabbit.xml" />

  <import resource="applicationContext-pentaho-security-jdbc.xml" />
  <import resource="applicationContext-spring-security-jdbc.xml" />

  <import resource="applicationContext-spring-security-multiple.xml" />
  <import resource="applicationContext-pentaho-security-multiple.xml" />

  <import resource="pentahoObjects.spring.xml" />
  (...)
</beans>

Edit applicationContext-spring-security-multiple.xml

In the PROVIDERS INFO block, you'll notice that each provider info xml block references bean id's declared in the other config files. Ensure all bean ids are correct.

Enabling multiple authentication

edit pentaho-solutions/system/security.properties and set security.provider=multiple

Note: at any time you can switch providers simply by declaring which one you intend to use on this security.properties file

Accepted provider keys are: ldap, jdbc, memory, jackrabbit, multiple, super

Launch the bi-server

Launch the BI server and hopefully you're all set.

Troubleshooting

Of course this won't work out of the box. Pay close attention to the logs. One of the most common errors is bean id collision, which is reported in the pentaho logs.

One other option is setting the spring logs to debug in log4j.xml

Questions / doubts

For any additional questions, feel free to get in touch: ctools at webdetails.pt

Something went wrong with that request. Please try again.