我在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
答案 0 :(得分:1)
您可以创建一个userfilter,使jsecurity调用checkPermission。 例如,如果您可以从控制器,操作和ID确定授权,则可以使用此过滤器
permissionCheck() {
before = {
SecurityUtils.getSubject().ceckPermission("${controller}:${action}:${id}")
}
}
以及使用数据库检查此权限的领域。