Grails Shiro插件:确认我的理解

Grails Shiro插件:确认我的理解,grails,shiro,Grails,Shiro,在阅读了一些文档之后,我对如何开始使用shiro插件有点模糊。我决定不使用Nimble,因为它几乎没有表和UI插件 我使用通配符域设置shiro插件,并使用我自己的表。我可以使用基于权限(而不是基于角色)的访问控制,因为它可以很好地扩展。现在,请看步骤 将权限字符串分配给主题,并将其保存在数据库中 通过iPermited、hasPermission(或GSP中的相关标签)检查权限 现在, 1.何时通过过滤器使用accesscontrol? 2.是否有一个闭包注入到控制器中,我可以在其中定义操作的

在阅读了一些文档之后,我对如何开始使用shiro插件有点模糊。我决定不使用Nimble,因为它几乎没有表和UI插件

我使用通配符域设置shiro插件,并使用我自己的表。我可以使用基于权限(而不是基于角色)的访问控制,因为它可以很好地扩展。现在,请看步骤

  • 将权限字符串分配给主题,并将其保存在数据库中
  • 通过iPermited、hasPermission(或GSP中的相关标签)检查权限
  • 现在,
    1.何时通过过滤器使用accesscontrol?
    2.是否有一个闭包注入到控制器中,我可以在其中定义操作的权限?我在某个地方读到了每个控制器上的accessControl静态闭包,但似乎没有记录在案。
    3.我如何创建一个典型的访问控制场景,比如只有(某物、帖子等)的创建者才能删除它?一种可能是基于userid创建并持久化权限字符串。要检查检索对象(post)的权限,请获取用户ID并与主题进行比较。。看起来有点复杂。。有什么简单的实现方法吗

    非常感谢。。 巴布

    1何时使用访问控制安全过滤器

    A.如果要将控制器操作的访问权限限制为经过身份验证的用户,请使用accessControl{true}

    B.当您希望基于权限“${controllerName}:${actionName}”限制对控制器操作的访问时,使用accessControl(),而不管参数内容如何

    C.当您希望基于参数内容限制操作时,例如,仅删除您具有删除权限“${name}:${id}:delete”的域对象,您需要在控制器中显式选中isPermitted

    3如何创建一个典型的访问控制场景,如 创造者


    我会在创建帖子时向用户添加一个必要的权限,例如“post:${postId}:*”,这样权限就属于用户和/或角色,而不是Shiro工作方式中的任意域对象。与文件系统权限相反,文件系统权限属于文件和目录,而不是用户。

    我再次查看了Nimble,从所有功能来看,它还不错。。似乎他们的核心和社会特征有所不同。。需要进一步探索。。一个挑战是将样式集成到我的应用程序中。。。