jsecurity:如何从数据库设置权限?

时间:2009-08-06 02:33:16

标签: grails groovy jsecurity

我在Grails上使用Jsecurity插件,如果可能的话,我想知道如何从数据库中为每个页面设置权限。

就像存储以下规则一样:

  

/ home / edit / *为Admin / home / *
  对于用户/管理员/ *为管理员   / menu / * for Admin,Staff Admin

等等......

目前,我们在conf / SecurityFilters.groovy中执行了此操作,如下所示

menuEditing(controller:"menu"){
    before = {
        accessControl {
            role("Administrator");
        }
    }
}

是否可以将规则存储在数据库上,而不是写在安全过滤器上?

ps:我认为jsecurity更名为Apahce Shiro link text

1 个答案:

答案 0 :(得分:1)

您可以创建一个userfilter,使jsecurity调用checkPermission。 例如,如果您可以从控制器,操作和ID确定授权,则可以使用此过滤器

permissionCheck() {
    before = {
        SecurityUtils.getSubject().ceckPermission("${controller}:${action}:${id}")
    }
}

以及使用数据库检查此权限的领域。