0

在我的 grails 应用程序中,我安装了 spring security acl 并且它工作正常。我有一个域类客户和三个角色,即管理员、销售和其他。如何为同一个域实例上的不同用户授予权限,即对于ROLE_ADMIN(创建、读取、删除和写入)、对于ROLE_SALES(创建、读取)和ROLE_OTHERS(创建、读取、写入)。

示例:x 是由管理员角色创建的客户实例,具有写入、删除、读取权限。对于同一个 x 实例,如何为销售角色授予读、写权限以及为其他角色授予创建、读、写权限

4

1 回答 1

2

您可以@Secured在类级别或方法级别放置授权注释。这样,您可以将控制器方法锁定到某些角色。例如,如果您有一个想要控制访问的事物域类,那么您可以这样注释它的控制器:

class ThingController {
    @Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
    create() {
      // creation logic
    }

    @Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
    read() {
      // read logic
    }

    @Secured('ROLE_ADMIN')
    delete() {
      // delete logic
    }

    @Secured(['ROLE_ADMIN', 'ROLE_OTHERS'])
    write() {
      // write logic
    }
}

是一篇很好的 Grails Spring Security 介绍文章(在“添加访问控制”和“注释”下查看)。是有关该主题的官方 Grails Spring Security 文档。

于 2013-08-18T04:35:28.627 回答