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

就像存储以下规则:



等...

目前,我们在conf / SecurityFilters.groovy中做到了,如下所示

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

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

ps:我认为jsecurity将其名称更改为Apahce Shiro
link text

最佳答案

您可以创建一个用户过滤器,该过滤器将jsecurity调用到checkPermission。
例如,如果您可以根据 Controller ,操作和ID确定授权,则可以使用此过滤器

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

和一个使用数据库检查此权限的 Realm 。

关于grails - jsecurity:如何设置数据库权限?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1236698/

10-10 18:01