你没有许可......春天安全shiro

时间:2017-04-27 04:28:04

标签: grails spring-security shiro

我目前正致力于实现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现在应该没有问题。

非常感谢任何指导。

提前感谢您的帮助。

此致

1 个答案:

答案 0 :(得分:0)

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

class Account{
    static hasMany = [ permissions: Permission ]
}


class Permission {

   Account user
   String permission

   static constraints = {
   }
}