org.apache.catalina.realm.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,也可以使用直接查询。
http://www.docjar.com/html/api/org/apache/catalina/realm/JDBCRealm.java.html
To use this JDBCRealm we need two tables, user and user_role.
user table - user_id, user_name, user_password
user_role table - user_id, role_id, user_name
Why user_name is required in user_role table when user_id is there as foreign key. The JDBCRealm could have used a join query to extract roles or a direct query as well if it stores the user_id from the previous query.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下是
JDBCRealm<的 Tomcat 6 文档 /代码>。
两个表中都不需要
user_id
,role_id
也不需要。users
表应包含user_name
和user_password
列;roles
表应包含user_name
和role_name
列。 表通过user_name
链接。这样做的原因(字符串而不是数字 ID)是因为
Principal
的名称为String
并且isUserInRole()
调用采用角色名称也为String
。Here's Tomcat 6 documentation for
JDBCRealm
.user_id
is NOT required in either table, nor isrole_id
.users
table should haveuser_name
anduser_password
columns;roles
table should haveuser_name
androle_name
columns. Tables are linked viauser_name
.The reason it's done this way (string rather then numeric ids) is because
Principal
had name as aString
andisUserInRole()
call takes role name asString
as well.