2009-08-06 24 views
0

我在Grails上使用Jsecurity插件,我想知道如果可能的話從數據庫中爲每個頁面設置權限。jsecurity:如何從數據庫設置權限?

它就像存儲以下規則:

/家/編輯/ *爲管理/家庭/ *
用戶/管理員/ *爲管理員 /菜單/ *爲管理,員工管理

等等

的那一刻,我們做到了在conf/SecurityFilters.groovy像下面

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

是否可以將規則存儲在數據庫中而不是在安全篩選器上編寫?

PS:我覺得jsecurity更名爲Apahce的四郎 link text

回答

1

你可以做一個userfilter這使得jsecurity調用的checkPermission。 例如,如果你可以從控制器,動作和id確定授權,你可以使用此過濾器

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

並檢查使用數據庫此權限的領域。