我希望我的应用程序同时使用阿帕奇·希罗进行身份验证和授权。我希望从简单开始,并将关系数据库作为这两个方面的数据源。这意味着我需要使用JdbcRealm。
在阅读文档之后,我不清楚任何“用户表”需要什么样的表模式,包括将用户链接到其权限/角色的任何表。
所以我问:使用Shiro的JdbcRealm**,的如何/在哪里链接用户的权限/角色?**
它不能在shiro.ini文件中,因为它是一个静态配置文件,不适合连接到存储用户信息的JDBC数据源。
发布于 2014-10-06 19:32:35
JdbcRealm不依赖于特定的表模式:它使用一些默认查询,您可以重写这些查询(通过子类化或通过特定的setter方法),以便使其适应您的需要。
正如javadoc中所述,您可以使用默认查询作为构建自己模式的基础。查看一下来源,您可以开始创建三个基本表:users、user_roles和roles_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 = ?";https://stackoverflow.com/questions/26223179
复制相似问题