你没有权限... spring security shiro

Posted

技术标签:

【中文标题】你没有权限... spring security shiro【英文标题】:You do not have permission... 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 现在应该可以正常工作了。

任何指导将不胜感激。

提前感谢您的帮助。

问候

【问题讨论】:

【参考方案1】:

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

class Account
    static hasMany = [ permissions: Permission ]



class Permission 

   Account user
   String permission

   static constraints = 
   

【讨论】:

以上是关于你没有权限... spring security shiro的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security +Oauth2 +Spring boot 动态定义权限

spring-security 开启注解权限控制为什么没有效果

没有 Spring Security ACL 的 Spring 对象级权限

没有角色和权限的 Web 服务的 Spring Security [关闭]

Spring Security(一)

手把手教你如何使用Spring Security(下):访问控制