PDA

View Full Version : Pentaho Authentication (Bi server CE 3.9.0)



Ivan_76
11-11-2011, 05:07 AM
Ciao,

Ho la necessità di configurare la mia versione di Pentaho Server (3.9.0), in modo tale che la gestione delle utenze non avvenga più tramite hibernate ma possa avvenire tramite le mie utenze ed i miei ruoli configurati sul mio db mysql.

Ho letto che è necessario modificare il file ".....applicationContext-spring-security-jdbc.xml", ma credo sia necessario modificarne altri.

Qualcuno ha avuto esperienze di configurazione simili ?
Potrebbe darmi qualche indicazione ?

Grazie

Vania75
11-14-2011, 01:47 PM
Ciao Ivan,
ho visto il tuo thread anche nel forum internazionale.
Ho appena finito il passaggio a database mysql, che mi ha fatto penare non poco.
Stando alla mia configurazione, il file "pentaho-spring-beans.xml" non va modificato (io ho provato ma alla fine l'ho rimesso come all'inizio).
Nel file Web.xml hai commentato il codice:
<!--[BEGIN HSQLDB DATABASES]
<context-param>
<param-name>hsqldb-databases</param-name>
<param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,quartz@../../data/hsqldb/quartz</param-value>
</context-param>
[END HSQLDB DATABASES] -->

e anche le righe relative al listener:
<listener>
<listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>
</listener>

Inoltre, nel file Pentaho.xml, hai inserito nel tag context i puntamenti al db MySQL:
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="select 1" />

<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
validationQuery="select 1"/>
Questi sono gli stessi che dovresti aver modificato anche nel file ...\cartella BIServer-Ce\tomcat\webapps\pentaho\META-INF\context.xml

Ivan_76
11-15-2011, 05:34 AM
Ciao Vania!

grazie mille per la risposta, sto penando anche io da un po' di giorni, (oltretutto mi sono avvicinato al mondo pentaho da poco)nel riuscire a far eseguire l'autenticazione di Pentaho, direttamente puntando sul mio DB MySql , con le mie tabelle utenti ed i miei ruoli, dopo giorni in cui non partiva nemmeno più pentaho sono arrivato al punto di avere errori in fase di atenticazione "LOGIN ERROR" e non mi fa entrare.

Ora do una controllata seguendo gli step da te segnalatimi, e ti faccio sapere cosa riesco a combinare, e nel caso ti chiedo ulteriore aiuto.

Grazie mille !
Ciao

Vania75
11-15-2011, 06:29 AM
Ciao, a dire il vero io finora mi sono spostata sul db MySQL con i Sampledata, non ho osato spostarmi su un db nuovo mio. Ho l'impressione che possa essere un'ulteriore grana, e per ora non me la sento. Tra l'altro, io per ora non riesco cmq a far funzionare correttamente la PAC. Tu ci sei riuscito, almeno con l'HSQLDB?

Ivan_76
11-15-2011, 11:36 AM
Ciao,

allora per quanto riguarda gli esempi non mi sono preoccupato di farli puntare al db MySql, mi sono solamente occupato di creare un DB "Hibernate" su MySql, per gestire il login e le modifiche che ho fatto solo le seguenti:

Creazione DB
Eseguire gli script di creazione del DB "hibernate" su MySql con tabelle e dati ( presenti in ...biserver-manual-ce\pentaho-data\mysql5)

Modificare le connessioni a MySql per i DB hibernate e Quarz
Il file è nella cartella :

/Pentaho/bi-server/tomcat/webapps/pentaho/META-INF/context.xml



Modifica delle connessioni



<?xml version="1.0" encoding="UTF-8"?> <Context path="/pentaho" docbase="webapps/pentaho/"> <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="hibuser" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate" validationQuery="select 1" /> <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz" validationQuery="select 1"/> </Context>
Modificare i puntamenti di hibernate su MySql

Il file è nella cartella /Pentaho/bi-server/pentaho-solutions/system/hibernate/hibernate-settings.xml




Modificare in :

<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>

Il file è nella cartella /Pentaho/bi-server/pentaho-solutions/system/hibernate/mysql5.hibernate.cfg.xml



<!-- MySQL Configuration --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <property name="connection.username">hibuser</property> <property name="connection.password">password</property> <property name="connection.pool_size">10</property> <property name="show_sql">false</property> <property name="hibernate.jdbc.use_streams_for_binary">true</property> <!-- replaces DefinitionVersionManager -->

Impostazione Spring-securiti su MySql

Il file è nella cartella : /Pentaho/biserver-ce/Pentaho-solutions/system/applicationContext-spring-security-hibernate.properties

Modificare in

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/hibernate jdbc.username=hibuser jdbc.password=password hibernate.dialect=org.hibernate.dialect.MySQL5Dialect


Modificare le impostazioni di connessione JINDI datasource
Il file è nella cartella: Pentaho/biserver-ce/pentaho-solutions/system/simple-jndi/jdbc.properties

Modificare in
SampleData/type=javax.sql.DataSource SampleData/driver=com.mysql.jdbc.Driver SampleData/url=jdbc:mysql://localhost:3306/sampledata SampleData/user=pentaho_user SampleData/password=password Hibernate/type=javax.sql.DataSource Hibernate/driver=com.mysql.jdbc.Driver Hibernate/url=jdbc:mysql://localhost:3306/hibernate Hibernate/user=hibuser Hibernate/password=password Quartz/type=javax.sql.DataSource Quartz/driver=com.mysql.jdbc.Driver Quartz/url=jdbc:mysql://localhost:3306/quartz Quartz/user=pentaho_user Quartz/password=password SampleDataAdmin/type=javax.sql.DataSource SampleDataAdmin/driver=com.mysql.jdbc.Driver SampleDataAdmin/url=jdbc:mysql://localhost:3306/sampledata SampleDataAdmin/user=pentaho_admin SampleDataAdmin/password=password


Verificare la presenza dei driver MySql nella cartella di Tomcat

/Pentaho/biserver-ce/tomcat/lib/mysql-connector-java-5.1.17.jar


Questo è quanto ho fatto per utilizzare la PUC e la PAC con hibernate migrato in MySql, riesco ad accedere senza problemi.

L'unico problema che non sono ancora riuscito a risolvere è quello di non far partire HSQLDB all'avvio, ma al momento è la cosa mi preoccupa meno.

Invece il mio obbiettivo è quello di riuscire a sganciarmi totalmente da hibernate e gestire le utenze sulla base dei miei utenti/ruoli.


Se hai bisogno contattami in PM.

Vania75
11-21-2011, 10:22 AM
Ciao, per non far partire HSQLDB all'inizio questo è quello che io ho fatto:
"
... ho dovuto aggiungere nel file C:\Program Files\Pentaho\BIServer-Ce\tomcat\conf\Catalina\localhost\pentaho.xml le due risorse tali quali sono nel file C:\Program Files\Pentaho\BIServer-Ce\tomcat\webapps\pentaho\META-INF\context.xml, in particolare il file pentaho.xml è diventato così:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/" reloadable="true">
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="select 1" />

<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
validationQuery="select 1"/>
</Context>

Inoltre, nel file PercorsoPentaho\BIServer-Ce\tomcat\webapps\pentaho\WEB-INF\Web-xml
occorre commentare alcuni tag relativi al database HSQLDB, in particolare:

<!--[BEGIN HSQLDB DATABASES]

<context-param>
<param-name>hsqldb-databases</param-name>
<param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,quartz@../../data/hsqldb/quartz</param-value>
</context-param>
[END HSQLDB DATABASES] -->

e

<!-- [BEGIN HSQLDB STARTER]
<listener>
<listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>
</listener>
[END HSQLDB STARTER] -->

karlose
11-25-2011, 10:28 AM
Hi all, just now I'm testing the bi server 3.9 installation. i've followed the below steps

I changed:
Pentaho-ApplicationContext-security-jdbc.xml
Spring-ApplicationContext-security.xml
ApplicationContext-spring-security-hibernate.properties
ApplicationContext-spring-security-jdbc.xml
and also
quartz.properties
my problem is that the platform authenticates users sample only, it's like not to use the login data of hibernate database that I have configured

The login work only one time with my config.


Also i've seen that the theme of plataform (i think sw-style) don't work.

karlose
11-25-2011, 10:40 AM
Hi again, finally i found my problem,

we need also edit the file /pentaho-solutions/system/pentaho-spring-beans.xml
change the seccions

...............security-hibernate.xml for .................security-jdbc.xml


I'hope that this solve the problem of somebody.

THE INTERFACE LOOKS EVEN SO UGLY. SOMEBODY KNOW HOW WORK SW-STYLE