【问题标题】:Apache Shiro: PermissionsQuery seems to return nothingApache Shiro:PermissionsQuery 似乎什么也没返回
【发布时间】:2013-10-10 01:45:09
【问题描述】:

shiro.ini 中,我声明了以下 SQL 查询:

jdbcRealm.authenticationQuery = SELECT password FROM Person WHERE email = ?
jdbcRealm.userRolesQuery = SELECT id FROM SecurityRole WHERE id = (SELECT securityRole_id FROM Person WHERE email = ?)
jdbcRealm.permissionsQuery = SELECT action FROM SecurityPermission WHERE id = (SELECT permissions_id FROM securityrole_securitypermission WHERE securityrole_id = ?)

当我用1 替换最后一个查询中的? 并在数据库上运行它时,它会返回预期的结果:rest:*
但是SecurityUtils.getSubject().isPermitted(new WildcardPermission("rest")); 将返回false,尽管登录的用户分配了一个id = 1 的角色,securityrole_securitypermission 有一个id 为1 和1 的条目,而securitypermission 的id 为1 有action = "rest: *"。

【问题讨论】:

    标签: jdbc shiro


    【解决方案1】:

    jdbcRealm.permissionsLookupEnabled = true 完成了这项工作。 ;)

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 2021-07-07
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多