Grails Shiro 插件 : confirming my understanding

标签 grails shiro

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

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

  • 将权限字符串分配给主题,并将其保存在数据库
  • 通过 isPermitted、hasPermission(或 GSP 中的相关标签)检查权限。

  • 现在,
    1. 什么时候通过过滤器使用访问控制?
    2.是否有注入(inject) Controller 的闭包,我可以在其中定义操作的权限?我在某处阅读了有关每个 Controller 上的 accessControl 静态闭包的信息,但似乎没有记录。
    3. 如何创建一个典型的访问控制场景,比如只有(某物、帖子等)的创建者才能删除它?一种可能性是根据用户 ID 创建和保存权限字符串。检查权限检索对象(帖子),获取用户ID并与主题进行比较..似乎有点复杂..有什么简单的实现吗?

    多谢..
    巴布。

    最佳答案

    1 when to use the access control security filter?



    A. 当您希望将 Controller 操作的访问权限限制为经过身份验证的用户时,请使用 accessControl{true}。

    B. 当您想要限制对 Controller 操作的访问时,使用 accessControl(),无论参数内容如何,​​基于权限“${controllerName}:${actionName}”。

    C. 当您想根据参数内容限制操作时,例如仅删除您具有删除权限“${name}:${id}:delete”的域对象,您需要在 Controller 中显式检查 isPermitted。

    3 How do I create a typical access control scenario like only the creator?



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

    关于Grails Shiro 插件 : confirming my understanding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2756227/

    相关文章:

    Grails postgresql 数据库连接

    grails - 如果我知道自己的所有数据都不满足该约束,那么在域中更改约束时,我的数据将如何处理?

    eclipse - Eclipse 中的 Grails

    grails - 在grails中设置一个ini文件

    mongodb - 更新失败后出现数据无法保存和stackoverflow错误?

    grails - 从另一个grails插件运行时,Grails Assets 管道失败

    spring-security - 将 java webapp 转换为使用 SAML2 身份验证

    grails - Grails 应用程序中的 shiro 配置错误

    java - Apache shiro 2.1 在 Tomcat 8 RC 5 中无法正常工作

    Spring 安全性与 Apache Shiro