0

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

就像存储以下规则:

/home/edit/* 用于管理员 /home/*
用于用户 /administrator/* 用于管理员 /menu/* 用于管理员、员工管理员

ETC ...

目前,我们在 conf/SecurityFilters.groovy 中进行了如下操作

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

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

ps:我认为 jsecurity 将其名称更改为 Apahce Shiro 链接文本

4

1 回答 1

1

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

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

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

于 2009-08-10T14:43:27.973 回答