權(quán)限系統(tǒng)基于acegi框架實(shí)現(xiàn)了從前端頁(yè)面到后臺(tái)數(shù)據(jù)全面的控制。在權(quán)限控制中,它將權(quán)限分成五類(lèi):??
? 一是系統(tǒng)權(quán)限,主要是對(duì)模塊為單位的權(quán)限劃分,具體就是用戶(hù)對(duì)該模塊可見(jiàn)不可見(jiàn),能不能對(duì)該模塊進(jìn)行再授權(quán)的操作。表現(xiàn)在用戶(hù)界面就是用戶(hù)登錄系統(tǒng)主頁(yè)面后,可以看到的頂部菜單和左側(cè)outlookbar菜單的內(nèi)容控制。作為粒度最大的權(quán)限控制,系統(tǒng)實(shí)現(xiàn)了web url的防盜鏈功能。舉例來(lái)說(shuō),用戶(hù)新開(kāi)發(fā)的一個(gè)叫車(chē)輛管理的模塊,配置在http://localhost/business/carmanage.action的url下,當(dāng)對(duì)這個(gè)模塊的權(quán)限加以控制后,直接在瀏覽器中鍵入http://localhost/business/carmanage.action同樣是無(wú)法訪(fǎng)問(wèn)的,而不僅僅是界面內(nèi)容的屏蔽。
? 二是模塊操作權(quán)限,在對(duì)整個(gè)模塊的權(quán)限做出控制后,這里繼續(xù)對(duì)模塊的瀏覽、增加,修改,刪除的操作權(quán)限做出控制,也可以理解為對(duì)象權(quán)限?。還是以車(chē)輛管理為例,不同的人員對(duì)這個(gè)模塊的操作是不同的,有些用戶(hù)可以新增,刪除車(chē)輛;而有些用戶(hù)則只是可以對(duì)車(chē)輛的情況查看不能修改。通過(guò)系統(tǒng)提供的一套web 標(biāo)簽,頁(yè)面可以根據(jù)用戶(hù)不同的操作權(quán)限屏蔽相應(yīng)的功能按鍵。例如刪除,新增按鍵。用戶(hù)繞過(guò)頁(yè)面直接操作相應(yīng)業(yè)務(wù)方法同樣也做到了嚴(yán)格的控制,沒(méi)有權(quán)限的訪(fǎng)問(wèn)會(huì)被拒絕同時(shí)記入日志。?
? 三是數(shù)據(jù)范圍權(quán)限,又可以叫做對(duì)象實(shí)例級(jí)權(quán)限。事實(shí)上不是每個(gè)用戶(hù)都可以看到所有記錄的。以財(cái)務(wù)管理為例,部門(mén)經(jīng)理只能查看金額小于1W的數(shù)據(jù);而總經(jīng)理則沒(méi)有限制。權(quán)限系統(tǒng)對(duì)這部分權(quán)限也做出了全面的控制,可以根據(jù)數(shù)據(jù)類(lèi)型,相應(yīng)字段數(shù)值范圍做出控制。
? 四是單條數(shù)據(jù)ACL權(quán)限,為了滿(mǎn)足更嚴(yán)格的數(shù)據(jù)權(quán)限要求,權(quán)限系統(tǒng)對(duì)數(shù)據(jù)實(shí)現(xiàn)了單條數(shù)據(jù)的ACL權(quán)限,具體說(shuō)就是對(duì)每條數(shù)據(jù)都實(shí)現(xiàn)了權(quán)限控制,每條數(shù)據(jù)都有一到多條權(quán)限數(shù)據(jù)與其對(duì)應(yīng)。以個(gè)人通訊錄為例,每個(gè)用戶(hù)都維護(hù)自己的一個(gè)通訊錄,這些數(shù)據(jù)都只是對(duì)本人可見(jiàn),其他人不可見(jiàn)。但用戶(hù)可以對(duì)這些數(shù)據(jù)做出授權(quán),將某條聯(lián)系方式以授權(quán)的方式共享給其他人,并賦予不同的權(quán)限,包括擁有,修改,刪除,瀏覽四種權(quán)限。
五是數(shù)據(jù)字段權(quán)限,通過(guò)xml配置,系統(tǒng)保證了用戶(hù)的最小粒度的權(quán)限控制。每條業(yè)務(wù)數(shù)據(jù)權(quán)限可以精確控制到每一個(gè)字段。包括單個(gè)字段的可否瀏覽以及可否修改。保證了敏感信息的安全性。
授權(quán),作為權(quán)限系統(tǒng)的重要部分,系統(tǒng)提供了相當(dāng)方便的操作體驗(yàn)。以樹(shù)狀的方式展現(xiàn)權(quán)限主體(用戶(hù),角色,部門(mén))以及資源,方便,直接,一目了然。區(qū)別與傳統(tǒng)的RBAC模型,權(quán)限不僅僅可以分配給角色,也可以分配給部門(mén)和用戶(hù)。實(shí)際的權(quán)限是這三者權(quán)限的疊加,最大限度的方便用戶(hù)操作。考慮到用戶(hù)的擴(kuò)展,系統(tǒng)提供兩個(gè)權(quán)限繼承規(guī)則接口,用戶(hù)可以自定義權(quán)限繼承的規(guī)則。例如,部門(mén)A下有部門(mén)A1,部門(mén)A的權(quán)限是否由部門(mén)A1繼承。
http://www.aygfsteel.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:)