Il Security Realm diciamo che è il meccanismo con il quale un application server deve autenticare l'utente che richiede accesso. Quindi è legato specificamente al JAAS che ovviamente è legato agli application server.Una cosa ancora non ho capito, a livello teorico, il realm cos'è? È un qualcosa che riguarda java o l'application server, perchè da un application server all'altro esso cambia pure...
Tutti gli application server J2EE hanno i proprio realm, quello che cambia è il modo con il quale vengono "costruiti" la sostanza non cambia.
Il "JAAS CONTEXT" è la proprietà che glassfish ti mette a disposizione per configurare il tipo di realm che vuoi usere. I possibili valori (nella nuovissima versione di Glassfish) sono :e poi quando vado ad aggiungerlo dall'interfaccia di amministrazione di glassfish , ci sono alcune proprietà che devo specificare tra cui il JAAS CONTEXT,cos'è?perchè dal tutorial dà particolare importanza a questo campo indicando di inserire il valore "jdbcRealm"....
-file: le informazioni per il login degli utenti vengono salvate in un file di testo.
-ldap : permette di autenticare l'utente in base appunto al sistema LDAP
-jdbc : quello usato da te. Permette di autenticare l'utente con le informazioni che stanno sul DB
-certificate : le informzioni vengono salvate è lette dai certificati di sicurezza.
-solaris : permette di riutilizzare il meccanismo di sicurezza dei sistemi operativi solaris.
Il database lo poi "quasi" costruire come vuoi, l'importante è fornire all'application server due query :E poi un'altra cosa..a livello pratico... il database come deve essere costruito io inizialmente avevo messo nella tabella Utenti anche un attributo RUOLO che era chiave esterna ad un'altra tabella Gruppo...
La prima dati in ingresso username e password deve restituire un utente a cui appartengono tali credenziali.
La secondo data un username deve restituire tutti i Ruoli assegnati a quel username.
Quindi, per esempio, potresti creare anche una sola tabella Utente(username,password,ruolo) e fornire a glassfish le seguenti query:
1) Select Distinct username,password From Utente where username = ? and password = ? (la distinct serve se vuoi gestire il fatto che un utente può avere più ruoli).
2)Select ruolo From Utente where username = ?
A proposito del riavvio, una cosa che mi viene dall'esperienza, ogni volta che effettui una qualsivoglia operazione di configurazione dell'application server riavvialo sempre.....