Frage

http: //www.docjar .com / html / api / org / apache / catalina / Realm / JDBCRealm.java.html

Dieses JDBCRealm nutzen zu können, benötigen wir zwei Tabellen, Benutzer und user_role.

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

Warum user_name ist erforderlich in user_role Tabelle, wenn User_id dort als Fremdschlüssel ist. Die JDBCRealm hätte eine Join-Abfrage verwendet, Rolle oder eine direkte Abfrage und zu extrahieren, wenn sie die user_id der vorherige Abfrage gespeichert werden.

War es hilfreich?

Lösung

Hier ist Tomcat 6 Dokumentation JDBCRealm.

user_id ist NICHT in beiden Tabellen erforderlich, noch ist role_id. users Tabelle sollte user_name und user_password Spalten haben; roles Tabelle sollte user_name und role_name Spalten haben. Die Tische sind über user_name verknüpft.

Der Grund, es auf diese Weise (string eher dann numerische ids) getan ist, weil Principal Namen als String und isUserInRole() hatte auch Anruf entgegennimmt Rollennamen String.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top