2017-04-27 116 views
0

我目前正在执行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) 

的权限毫安提起来,但不确定哪里是木虱。 isPermitted现在应该没有问题。

任何指导将不胜感激。

在此先感谢您的帮助。

Regards

回答

0

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

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


class Permission { 

    Account user 
    String permission 

    static constraints = { 
    } 
}