Newsgroup: it.comp.java
Titolo: Fornire utente e password per accesso a database in web application

Ciao, in una web application riesco a collegarmi a un database tramite
jdbc, ma utente e password sono in chiaro e fissi scritti nel file
context.xml. Come posso fare perché vengano richiesti da una pagina di
login? 
Grazie


I dati per la connessione al database stanno in context.xml, o in
server.xml, o in un altro posto centralizzato per altri server, per
diversi motivi:
- l'utente del database di solito è *uno solo per schema/catalog*:
questo semplifica molto la gestione della base di dati;
- in quella maniera si sta configurando un *pool di connessioni*, per
rendere efficiente l'accesso al database ed evitare di crearne ogni
volta una, per riutilizzare quelle già aperte, ecc.;
- se l'applicazione ha diversi utenti di solito ci si crea delle
tabelle apposite con username/password, ma si possono addirittura
utilizzare certificati, SSL, ecc. Prova a dare un'occhiata ai "Realm"
di Tomcat:
http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html
In sostanza l'utente che effettua la login nel 99,9% dei casi non
coincide con l'utente del database, e ciò è bene :)
Pensa al povero DBA che altrimenti dovrebbe continuamente creare /
rimuovere / modificare account sul database!!!
--
www.megadix.org

 wrote:

E poi scusa... confermando anche quello che ha scritto _megadix_...
Se devi inserire delle credenziali per collegarti al DB tramite un
form html...
è molto più semplice "rubarle" così, sniffando i pacchetti http,
piuttosto che "rubarle" dal server...
Luigi

 Luigi
Su questo concordo pienamente con te, ma adesso come adesso basta
collegarsi alla pagina web è si ha accesso al database senza neanche
doversi preoccupare di cercare di carpirle le password. Sto leggendo la
documentazione che mi ha suggerito. 

CIAO!
a me sembra che il  tuo scopo sia quello di evitare che un utente non
autorizzato possa accedere all'a pplicazione e di conseguenza al
database.
ma una cosa è l'utente che l'applicazione usa per andare sul DB, una
cosa gli utenti che accedono all' applicazione.
Se lo scopo è quello di mascherare la password, il modo migliore è
accedere alla pagina di autenticazione in https, ma come fare a
rendere una pagina https non è standard, ma dipende dall' application
server che usi.
Stefano

 sul database!!!
Io sono più della vecchia scuola è preferisco sia il DBA a decidere chi
e cosa può fare un utente su una tabella e non che sia l'applicativo a
sceglierlo per quello preferivo fornire le credenziali d'accesso al
database. 
Detto questo sapresti indicarmi dove trovare un esempio pratico? Perché
ho letto il documento che mi hai indicato e ho visto l'esempio fornito ma
sono sincero non ho capito come fa a recuperare le credenziali e definire
i ruoli che poi gestirei nell'applicazione. 
Grazie 

 i ruoli che poi gestirei nell'applicazione.
Giusto, la documentazione in proposito c'è ma è sparsa qua e
là...facciamo così, io ti faccio un riassunto e i dettagli li cerchi
tu ;)
1) definisci un JDBCRealm o un DataSourceRealm nel tuo <Context>. Il
documento a cui ti ho rimandato spiega proprio quelli.
2) inserisci gli utenti nelle tabelle;
3) associa gli utenti ai ruoli, ad esempio "admin" "operator"
4) configura la tua web application, cioè modifica il web.xml. Ecco un
eccellente quick-tutorial:
http://www.onjava.com/pub/a/onjava/2003/06/25/tomcat_tips.html
Salumi e buone password.
P.S.
Anche io preferisco che l'utente del database sia l'applicazione, e
che gli utenti finali abbiano credenziali sull'applicazione stessa e
non il DB; ci sarebbero mille motivi ma OT per questo thread. Ciao ciao