質問

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

このJDBCRealmを使用するには、userとuser_roleの2つのテーブルが必要です。

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

user_idが外部キーとして存在する場合、user_roleテーブルにuser_nameが必要な理由。 JDBCRealmは、前のクエリのuser_idを保存している場合、結合クエリを使用してロールを抽出するか、直接クエリを使用することもできます。

役に立ちましたか?

解決

Tomcat 6のドキュメント > JDBCRealm

user_id はどちらのテーブルでも必要ではなく、 role_id も必要ありません。 users テーブルには、 user_name 列と user_password 列が必要です。 roles テーブルには、 user_name 列と role_name 列が必要です。テーブルは user_name を介してリンクされます。

この方法(数値ではなく文字列)で行われた理由は、 Principal String および isUserInRole()呼び出しとして名前を持っているためです。ロール名も String として取ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top