Domanda

http: //www.docjar .com / html / api / org / apache / Catalina / regno / JDBCRealm.java.html

Per usare questo JDBCRealm abbiamo bisogno di due tabelle, user e user_role.

user table - user_id, user_name, user_password
user_role table - user_id, role_id, user_name

Perché user_name è richiesto nella tabella user_role quando user_id è presente come chiave esterna. JDBCRealm avrebbe potuto utilizzare una query di join per estrarre ruoli o una query diretta anche se memorizza l'id_utente dalla query precedente.

È stato utile?

Soluzione

Ecco Documentazione Tomcat 6 per JDBCRealm .

user_id NON è richiesto in nessuna delle tabelle, né role_id . La tabella utenti dovrebbe contenere le colonne nome_utente e password_utente ; La tabella ruoli deve contenere colonne nome_utente e ruolo_codice . Le tabelle sono collegate tramite user_name .

Il motivo per cui è stato fatto in questo modo (stringa anziché ID numerici) è perché Principal aveva il nome come String e isUserInRole () call accetta anche il nome del ruolo come String .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top