Grails Shiro插件:确认我的理解

时间:2010-05-03 05:10:31

标签: grails shiro

在阅读几篇文档后,我对如何开始使用shiro插件有点模糊。我决定反对Nimble,因为它附带了几个表和UI插件。

我使用自己的表格设置带有通配符域的shiro插件。我可以使用基于许可(基于棕褐色角色)的访问控制,因为它可以很好地扩展。现在,它的步骤。

  1. 将权限字符串分配给主题,并将其保存在db
  2. 通过isPermitted,hasPermission(或GSP中的相关标签)检查权限。
  3. 现在,
      1.何时通过过滤器使用accesscontrol?
      2.是否有一个注入控制器的闭包,我可以在其中定义动作的权限?我在每个控制器上阅读了一些关于accessControl静态闭包的内容,但似乎没有记录 3.如何创建典型的访问控制方案,只有(某些东西,帖子等)的创建者可以删除它?一种可能性是基于用户标识创建和持久化权限字符串。检查权限检索对象(post),获取userid并与subject进行比较..看起来有点复杂..任何简单的实现?

    非常感谢.. 巴布。

1 个答案:

答案 0 :(得分:1)

  

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

一个。如果要限制对经过身份验证的用户的控制器操作的访问,请使用accessControl {true}。

B中。如果要根据权限“$ {controllerName}:$ {actionName}”限制对控制器操作的访问,请使用accessControl(),而不管参数内容如何。

℃。如果要根据参数内容限制操作,例如只删除您具有删除权限“$ {name}:$ {id}:delete”的域对象,您需要在控制器中明确检查isPermitted。

  

3如何创建典型的访问控制方案,仅限于   创造者?

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