面向多維數(shù)據(jù)的權(quán)限管理機(jī)制的配置方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子商務(wù)技術(shù)領(lǐng)域,特別是一種web系統(tǒng)中權(quán)限管理機(jī)制的配置方法。
【背景技術(shù)】
[0002]在web系統(tǒng)中,為了管理用戶可以訪問而且只能訪問自己被授權(quán)的資源,從而引入了權(quán)限管理機(jī)制。從控制力度來(lái)看,可以將權(quán)限管理分為兩大類:功能級(jí)權(quán)限管理和數(shù)據(jù)級(jí)權(quán)限管理。從控制方向來(lái)看,也可以將權(quán)限管理分為兩大類:1)從系統(tǒng)獲取數(shù)據(jù),比如查詢訂單、查詢客戶資料;2)向系統(tǒng)提交數(shù)據(jù),比如刪除訂單、修改客戶資料等。
[0003]通常情況下,功能權(quán)限管理技術(shù)一般使用基于角色訪問控制技術(shù)RBAC (RoleBased Access Control ),數(shù)據(jù)級(jí)權(quán)限管理技術(shù)一般使用硬編碼,也就是將這種邏輯以if/else等形式與業(yè)務(wù)代碼親合在一起;Spring-security即是基于以上規(guī)則設(shè)置出來(lái)的規(guī)則引擎開源框架。這種常規(guī)的權(quán)限管理設(shè)計(jì)方案,普遍存在如下問題:1)角色被“編碼”到配置文件和源文件,導(dǎo)致用戶無(wú)法創(chuàng)建角色;2)無(wú)法提供較好的細(xì)粒度(數(shù)據(jù)級(jí))權(quán)限方案;3)對(duì)于用戶、角色、權(quán)限之間的關(guān)系,無(wú)法提供任何一種維護(hù)界面;4)Spring Security配置文件多,學(xué)習(xí)難度大,導(dǎo)致開發(fā)人員工作量巨大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明針對(duì)現(xiàn)有技術(shù)中存在的開發(fā)人員工作量大、設(shè)計(jì)實(shí)現(xiàn)方式不統(tǒng)一、服務(wù)管理困難、無(wú)法創(chuàng)建角色、沒有權(quán)限細(xì)粒度(數(shù)據(jù)集)權(quán)限的缺陷,提供一種簡(jiǎn)化開發(fā)人員的工作量、設(shè)計(jì)實(shí)現(xiàn)方式統(tǒng)一、服務(wù)管理較容易、能夠管理角色和數(shù)據(jù)級(jí)權(quán)限的權(quán)限管理機(jī)制配置方法。
[0005]為解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案如下。
[0006]面向多維數(shù)據(jù)的權(quán)限管理機(jī)制的配置方法,所述配置方法具體包括以下步驟:
A)根據(jù)處理數(shù)據(jù)請(qǐng)求,配置功能數(shù)據(jù)權(quán)限信息與多維數(shù)據(jù)平臺(tái)系統(tǒng)的維度信息到數(shù)據(jù)庫(kù);
B)把步驟A的配置信息通過(guò)鍵值對(duì)的方式,包裝成權(quán)限方案和維度方案,并存儲(chǔ)到緩存中,并通過(guò)只要與權(quán)限相關(guān)的修改就更新緩存;
C)對(duì)多維數(shù)據(jù)平臺(tái)系統(tǒng)中的處理數(shù)據(jù)請(qǐng)求進(jìn)行分析,轉(zhuǎn)換為符合url到controller的鍵值對(duì)的數(shù)據(jù)集,并與緩存中的功能數(shù)據(jù)和維度數(shù)據(jù)進(jìn)行比較,判斷該數(shù)據(jù)集是否存在緩存中,如存在,獲取對(duì)應(yīng)的角色令牌;如不存在,直接返回;
D)判斷令牌是否有權(quán)處理數(shù)據(jù),如是,系統(tǒng)處理這些數(shù)據(jù)并返回處理結(jié)果;否則,返回?zé)o權(quán)限訪問。
[0007]本發(fā)明步驟A)中所述功能數(shù)據(jù)權(quán)限信息包括用戶、角色、功能、模塊和權(quán)限信息,所述維度信息包括用戶維度組、維度數(shù)據(jù)和維度。
[0008]本發(fā)明步驟A)中的配置過(guò)程包括以下內(nèi)容: A1)配置用戶與角色的關(guān)系;
A2)配置角色與權(quán)限的關(guān)系;
A3)配置權(quán)限與模塊、權(quán)限與功能的關(guān)系;
A4)配置用戶與維度組的關(guān)系;
A5)配置維度與維度組的關(guān)系。本發(fā)明步驟B)采用角色訪問控制技術(shù)和投票(Voter)機(jī)制進(jìn)行配置。
[0009]本發(fā)明步驟C)具體包括以下步驟:
C1)判斷處理數(shù)據(jù)請(qǐng)求的合法性;
C2)將合法的處理數(shù)據(jù)請(qǐng)求轉(zhuǎn)換為符合規(guī)則的數(shù)據(jù)集;
C3)遍歷緩存中的功能數(shù)據(jù)和維度數(shù)據(jù),與數(shù)據(jù)集進(jìn)行比較,判斷該數(shù)據(jù)集是否存在緩存中;如存在,進(jìn)行步驟C4);如不存在,直接返回;
C4)獲取令牌。
[0010]本發(fā)明步驟D)具體包括以下步驟:
D1)判斷判斷角色令牌是否存在權(quán)限標(biāo)志,來(lái)判斷是否有權(quán)處理數(shù)據(jù);如果有權(quán)進(jìn)行步驟D2),否則,返回?zé)o權(quán)限訪問;
D2)通過(guò)url與controller的鍵值對(duì)映射,處理數(shù)據(jù)請(qǐng)求到系統(tǒng)維度信息,并進(jìn)行數(shù)據(jù)級(jí)緩存;
D3)系統(tǒng)進(jìn)行處理,并返回處理結(jié)果。
[0011]—種面向多維數(shù)據(jù)的權(quán)限管理機(jī)制的配置裝置,包括功能權(quán)限和數(shù)據(jù)權(quán)限配置單元、權(quán)限管理邏輯控制框架、權(quán)限管理令牌單元和存儲(chǔ)層,其中:功能權(quán)限和數(shù)據(jù)權(quán)限配置單元,用于根據(jù)處理數(shù)據(jù)請(qǐng)求配置功能數(shù)據(jù)權(quán)限信息與多維數(shù)據(jù)平臺(tái)系統(tǒng)的維度信息到存儲(chǔ)層;權(quán)限管理邏輯控制框架,用于將配置信息包裝成權(quán)限方案和維度方案,并存儲(chǔ)到緩存中;權(quán)限管理令牌單元,用于對(duì)處理數(shù)據(jù)請(qǐng)求進(jìn)行分析和轉(zhuǎn)換,并判斷是否存在于緩存中,如存在則獲取令牌;進(jìn)一步判斷令牌是否有權(quán)處理數(shù)據(jù),如有權(quán)限則處理這些數(shù)據(jù)并把處理結(jié)果返回給用戶。
[0012]上述面向多維數(shù)據(jù)的權(quán)限管理機(jī)制的配置裝置,所述權(quán)限管理令牌單元包括分析轉(zhuǎn)換模塊、用戶狀態(tài)判斷模塊以及維度包裝模塊,所述分析轉(zhuǎn)換模塊用于對(duì)處理數(shù)據(jù)請(qǐng)求進(jìn)行分析和轉(zhuǎn)換,用戶狀態(tài)判斷模塊用于判斷處理數(shù)據(jù)請(qǐng)求是否存在于緩存中以及獲得令牌是否有權(quán)處理數(shù)據(jù),維度包裝模塊用于包裝處理數(shù)據(jù)請(qǐng)求到維度信息。
[0013]由于采用了以上技術(shù)方案,本發(fā)明所取得技術(shù)進(jìn)步如下。
[0014]本發(fā)明的應(yīng)用,使得開發(fā)人員在開發(fā)時(shí)僅許針對(duì)每個(gè)需求通過(guò)簡(jiǎn)單配置就可以解決了多維數(shù)據(jù)的控制問題,而不需要通過(guò)修改代碼來(lái)適應(yīng)不同的需求,不僅設(shè)計(jì)實(shí)現(xiàn)方式統(tǒng)一、服務(wù)管理較容易、能夠管理角色和數(shù)據(jù)級(jí)權(quán)限,而且還大大減少了開發(fā)人員的工作量。
【附圖說(shuō)明】
[0015]圖1為本發(fā)明的流程圖;
圖2為本發(fā)明所述步驟A)的流程圖。
【具體實(shí)施方式】
[0016]下面將結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0017]本發(fā)明提供一種面向多維數(shù)據(jù)的權(quán)限管理機(jī)制的配置方法,其流程圖如圖1所示,配置方法具體包括以下步驟:
A)根據(jù)處理數(shù)據(jù)請(qǐng)求,配置功能數(shù)據(jù)權(quán)限信息與多維數(shù)據(jù)平臺(tái)系統(tǒng)的維度信息到數(shù)據(jù)庫(kù);功能數(shù)據(jù)權(quán)限信息包括用戶、角色、功能、模塊和權(quán)限信息,維度信息包括用戶維度組、維度數(shù)據(jù)和維度。
[0018]配置過(guò)程如圖2所示,具體包括以下內(nèi)容:
A1)配置用戶與角色的關(guān)系,一個(gè)角色可以對(duì)應(yīng)多個(gè)用戶,一個(gè)用戶也可以用多個(gè)角色;
A2)配置角色與權(quán)限的關(guān)系,一個(gè)角色可以對(duì)應(yīng)多個(gè)權(quán)限;
A3)配置權(quán)限與模塊、權(quán)限與功能的關(guān)系,模塊與功能的結(jié)合,就會(huì)產(chǎn)生具體的權(quán)限; A4)配置用戶與維度組的關(guān)系,一個(gè)維度組有多個(gè)用戶,一個(gè)用戶可以有多個(gè)維度組; A5)配置維度與維度組的關(guān)系,一個(gè)維度組有多個(gè)維度。
[0019]B)通過(guò)鍵值對(duì)的規(guī)則把步驟A)的配置信息,包裝成角色與權(quán)限的鍵值對(duì),以此形成權(quán)限方案和維度方案,并存儲(chǔ)到緩存中,并通過(guò)只要與權(quán)限相關(guān)的修改,都要更新緩存。本步驟中的緩存為功能級(jí)緩存,采用角色訪問控制技術(shù)和投票