事情是这样的:我希望有这样的角色的用户:
表用户: id|username|role_id
表角色: id|name|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 = ?)有办法这样做吗?我已经找了好几天了。我非常感谢你的帮助。提前谢谢各位。
发布于 2016-06-01 14:02:06
我拿到了!!多亏了dev,他真的帮助我解决了这个问题,下面是解决方案(shiro.ini)
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.permissionsLookupEnabled = true
jdbcRealm.authenticationQuery = SELECT password from users where username = ?
jdbcRealm.userRolesQuery = select id from roles where id = (select role_id FROM users WHERE username = ?)
jdbcRealm.permissionsQuery = SELECT name FROM permissions WHERE UPPER(role_id)=UPPER(?)我希望这对将来的人有帮助,谢谢你的帮助@dev
发布于 2016-05-31 04:28:39
不要将权限存储在另一个表中,这样您就可以进一步修改和增强权限,例如
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 = truehttps://stackoverflow.com/questions/37534017
复制相似问题