java - Shiro JdbcRealm 授权的表架构?

标签 java authorization shiro jdbcrealm

我希望我的应用使用 Apache Shiro用于身份验证和授权。我想从简单开始,让一个关系数据库成为这两者的数据源。这意味着我需要使用 JdbcRealm .

阅读文档后,我不清楚任何“用户表”需要什么表架构,包括将用户链接到他们的权限/角色的任何表。

所以我问:使用 Shiro 的 JdbcRealm,如何/在哪里将用户链接到他们各自的权限/角色?

它不能在 shiro.ini 文件中,因为它是一个静态配置文件,无法连接到存储用户信息的 JDBC 数据源。

最佳答案

JdbcRealm不依赖于特定的表架构:它使用一些默认查询,您可以覆盖这些查询(通过子类化或通过特定的设置方法)以使其适应您的需要。

javadoc 中所述,您可以使用默认查询作为构建您自己的架构的基础。看看 source ,您可以开始创建三个基本表:usersuser_rolesroles_permissions

protected static final String DEFAULT_AUTHENTICATION_QUERY = "select password from users where username = ?";

/**
* The default query used to retrieve account data for the user when {@link #saltStyle} is COLUMN.
*/
protected static final String DEFAULT_SALTED_AUTHENTICATION_QUERY = "select password, password_salt from users where username = ?";

/**
* The default query used to retrieve the roles that apply to a user.
*/
protected static final String DEFAULT_USER_ROLES_QUERY = "select role_name from user_roles where username = ?";

/**
* The default query used to retrieve permissions that apply to a particular role.
*/
protected static final String DEFAULT_PERMISSIONS_QUERY = "select permission from roles_permissions where role_name = ?";

关于java - Shiro JdbcRealm 授权的表架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26223179/

相关文章:

grails - Grails + Shiro + LDAP

java - 使用 Apache Shiro 的 CSRF token

java - Apache Shiro 1.4.0 初始化

java - 如何在 MacO 下设置 Idea

asp.net-mvc - IIS 7.5 MVC 2 401.3 错误问题

java - 从特定单词后的字符串中获取子字符串

java - 使用 JMX 和 Jaas 进行 jconsole 身份验证

asp.net-mvc - 将角色动态映射到 ASP.Net MVC 中的 Controller

java - 我的代码有什么问题?空指针异常

java - QueryDSL DateTime 字段格式化投影