我有一個Domain
類和Controller
名爲Person
。這Controller
有4意見。 create.gsp
,remove.gsp
,show.gsp
,showdetail.gsp
。限制訪問某些意見 - 初學者
我想要做的就是允許讀取權限showdetail.gsp
給所有觀衆和限制create.gsp
,remove.gsp
和show.gsp
視圖的訪問。只有Administrator
應該能夠訪問這些頁面。我如何在Grails中做到這一點?
我有一個Domain
類和Controller
名爲Person
。這Controller
有4意見。 create.gsp
,remove.gsp
,show.gsp
,showdetail.gsp
。限制訪問某些意見 - 初學者
我想要做的就是允許讀取權限showdetail.gsp
給所有觀衆和限制create.gsp
,remove.gsp
和show.gsp
視圖的訪問。只有Administrator
應該能夠訪問這些頁面。我如何在Grails中做到這一點?
你可以使用安全過濾器來做到這一點,或者你可以使用Spring Security Core grails插件。 如果你想用的保安過濾器,你可以做到以下幾點:
在登錄時每個用戶創建會話。 會話[「用戶」] =「羅希特」 //用戶名
添加安全過濾器:
PersonFilters(controller: 'person', action: 'create') {
before = {
// code to be change
if(!session["user"]) {
//flash.message = "Your session has been expired. Please login to continue."
redirect(controller: "login", action:"index")
return false;
} else if(session["user"] && session["user"] != "admin"){
// redirect to some action
// redirect(controller: "", action:"index")
return false;
}
}
}
同樣,您可以爲您不希望這些行動加上保安過濾器向除admin之外的任何用戶展示。
首先,用戶需要登錄,認證成功後,會話應該保持正確。然後在控制器過濾器中,您可以編寫一個攔截器,該攔截器可以根據授權規則訪問某些操作。
所有這些以及更多已經在nimble plugin中與UI部分一起完成,這很容易。
閱讀該文檔: http://snimavat.github.io/nimble/guide/leverage.html#accesscontrol
您可以使用[春安芯(http://grails.org/plugin/spring-security-core)Grails的插件。插件提供基於角色的認證。 [插件手冊](http://grails-plugins.github.io/grails-spring-security-core/docs/manual/)可以適當地指導。 – dmahapatro