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

要使用此JDBCRealm,我们需要两个表user和user_role。

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,则它可能会使用联接查询来提取角色或直接查询。

最佳答案

这是JDBCRealmTomcat 6 documentation

在任何一个表中都不需要user_id,也不是role_idusers表应具有user_nameuser_password列; roles表应具有user_namerole_name列。表通过user_name链接。

之所以这样做(字符串而不是数字id),是因为Principal的名称为String,而isUserInRole()调用的角色名称也为String

08-28 21:29