PDA

View Full Version : Autenticazione utenti



souleh
02-09-2012, 10:21 AM
Salve a tutti,

sto provando a far si che Pentaho effettui l'autenticazione utenti tramite server MySQL, sul quale ho già delle tabelle definiti contenenti username password e ruoli, quindi vorrei sganciarmi completamente da Quartz e Hibernate, andando ad effettuare l'autenticazione utilizzando i dati presenti in queste tabelle.

Fino ad ora ho modificato i file:
- applicationContext-pentaho-security-jdbc.xml
- applicationContext-spring-security-jdbc.xml
- pentaho-spring-beans.xml

come suggerito dalla wiki, ma credo che ci sia da modificare altro, e vorrei capire cosa. Se qualcuno può aiutarmi mi farebbe un grosso favore.
Ho anche testato le query per recuperare username password e ruoli sul server MySQL e funzionano.

Sto utilizzando Pentaho BI CE 3.9.0 e MySQL 5.

Grazie per l'attenzione.

enricoe85
02-09-2012, 01:37 PM
Queste tabelle si trovano in un database a parte? Hibernate lo hai migrato anche su MySql? E' solo per capire meglio la situazione...

souleh
02-09-2012, 02:15 PM
Si, le tabelle che contengono username password e ruoli si trovano su un database MySQL presente nella rete aziendale.
Non ho migrato Hibernate su MySQL, anche perchè non credo mi sia consentito farlo, quindi volevo capire se è possibile sganciarsi totalmente da Hibernate e Quartz in modo da far gestire l'utenza solo dal db MySQL con le sue tabelle.

enricoe85
02-10-2012, 04:33 AM
Non so se sia possibile farlo, però le posso dare la certezza che è possibile migrare hibernate e quartz su un altro db e riconfigurare i puntamenti di Pentaho (io ho migrato tutto su Oracle). Nel suo caso potrebbe migrare il tutto su Mysql, si tratta solo di ricreare la struttura del db (in rete si trovano degli script sql per questo). In questo modo avrà tutto il db di Hibernate comprese le tabelle degli user su MySql.

souleh
02-10-2012, 04:56 AM
Si, avevo trovato anche io il modo per migrare Hibernate e Quartz su MySQL, mi chiedevo semplicemente se fosse necessario farlo.
Grazie lo stesso per l'attenzione e le risposte :)

lukolap
03-19-2012, 04:53 AM
In pentaho-spring-beans.xml sostituisci

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

con

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

In questi due file modifica le query con quelle che si adattano alle tue tabelle cercando però di mantenere lo stesso risultato di quelle originali.

Inoltre in applicationContext-spring-security-jdbc.xml modifica il bean dataSource con i parametri di connessione al tuo db su MySql e
controlla che nel bean passwordEncoder la classe sia quella relativa all'encoder che usi per criptare la password (es. se cripti con MD5
devi usare la classe org.springframework.security.providers.encoding.Md5PasswordEncoder).

Hibernate e Quartz devono comunque essere configurati correttamente.

souleh
03-23-2012, 12:21 PM
Ciao, grazie per la risposta.
Come ho già detto un po' più su (credo), il mio intento era sganciarmi in maniera completa da hibernate e quartz, e utilizzare delle logiche di sicurezza presenti interamente in uno schema mysql. Ma a quanto pare non è possibile :)

lukolap
03-27-2012, 04:27 AM
Non capisco cosa intedi per sganciarti completamente da Hibernate e Quartz.
Anche se non ti appoggi a Hibernate per l'autenticazione, questo serve comunque per mantenere informazioni (e cache) riguardo gli oggetti del solution repository e le datasource.
Quartz invece serve principalmente per memorizzare le definizioni dei job da schedulare.
Quindi credo non sia possibile fare a meno di questi.
Si può però, ad esempio, fondere Hibernate e Quartz in un unico db o creare le loro tabelle in un database già esistente.

Ciao :)

souleh
03-27-2012, 06:55 AM
Stiamo essenzialmente dicendo la stessa cosa, cioè che Hibernate e Quartz sono indispensabili per il funzionamento della piattaforma :D
Grazie comunque per le risposte, mi inventerò qualcosa :)