【问题标题】:You do not have permission... spring security shiro你没有权限... spring security shiro
【发布时间】:2017-09-24 17:03:50
【问题描述】:

我目前正在实施 spring security shiro 插件,但似乎遇到了权限问题。下面是我的设置。我在访问我应该有权访问的资源时收到“您无权访问此订单...”。

域类

class Permission {

   Account user
   String permission

   static constraints = {
      permission unique: 'user'
   }
}

控制器

if(!subject.isPermitted("todo:edit:${todo.id}")){
    flash.message = "You do not have permission to access this order..."
    forward(controller:'todo', action:'list')
    return
}

自举数据

account.addToPermissions("todo:save")
account.addToPermissions("todo:edit:" + todo.id)
account.addToPermissions("todo:update:" + todo.id)
account.addToPermissions("todo:remove:" + todo.id)
account.save(flush:true)

权限匹配,但不确定 hickup 在哪里。 isPermitted 现在应该可以正常工作了。

任何指导将不胜感激。

提前感谢您的帮助。

问候

【问题讨论】:

    标签: grails spring-security shiro


    【解决方案1】:

    用户类需要有一个 hasMany 的 Permission 对象。在旧版本中,用户类有一个 hasMany 的权限字符串。我还必须删除 Permission 域类中的约束部分。

    class Account{
        static hasMany = [ permissions: Permission ]
    }
    
    
    class Permission {
    
       Account user
       String permission
    
       static constraints = {
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 1970-01-01
      • 2017-09-28
      • 2016-12-17
      • 2011-10-14
      • 2014-06-02
      • 2017-07-13
      • 2016-04-08
      相关资源
      最近更新 更多