org.apache.catalina.realm.JDBCRealm中是否有错误?

时间:2009-07-31 06:53:05

标签: java authentication tomcat jdbcrealm

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

1 个答案:

答案 0 :(得分:1)

这是JDBCRealm的{​​{3}}。

两个表中都不需要

user_id,也不是role_idusers表应包含user_nameuser_password列; roles表应包含user_namerole_name列。表格通过user_name链接。

这样做的原因(字符串而非数字ID)是因为Principal的名称为StringisUserInRole()调用的角色名称为String