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

发布于 2024-07-29 23:27:38 字数 487 浏览 4 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的心境我的脸 2024-08-05 23:27:38

以下是 JDBCRealm<的 Tomcat 6 文档 /代码>。

两个表中都不需要 user_idrole_id 也不需要。 users 表应包含 user_nameuser_password 列; roles 表应包含 user_namerole_name 列。 表通过user_name链接。

这样做的原因(字符串而不是数字 ID)是因为 Principal 的名称为 String 并且 isUserInRole() 调用采用角色名称也为 String

Here's Tomcat 6 documentation for JDBCRealm.

user_id is NOT required in either table, nor is role_id. users table should have user_name and user_password columns; roles table should have user_name and role_name columns. Tables are linked via user_name.

The reason it's done this way (string rather then numeric ids) is because Principal had name as a String and isUserInRole() call takes role name as String as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文