这是东西:
我想让用户扮演这样的角色:

表用户:
id |用户名| role_id

表角色:
id |名称| add_users | add_customers | configure_mail | ... | ... | ...

当用户可以执行操作时,权限类型为二进制,否则为1或0。

在我的shiro.ini中,我有以下查询:

jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = SELECT password from users where username = ?
jdbcRealm.userRolesQuery = select name from roles where id = (select role_id FROM users WHERE username = ?)


有没有办法做到这一点?。
我已经搜寻了几天。我将衷心感谢您的帮助。
在此先感谢大家。

最佳答案

您是否认为最好将权限存储在另一个表中,以便您有范围进行修改和增强,例如

Table users: id|username|role_id

Table roles: id|name

Table permission: permission|role

now in permission table
customer:add,04   -- 04 is role
mail:configure,04
.....

所以在四郎伊尼
jdbcRealm.permissionsQuery = SELECT permid FROM apppermissions WHERE  UPPER(roleid)=UPPER(?)
jdbcRealm.permissionsLookupEnabled = true

09-27 03:28