django基于角色的權(quán)限管理 如何在Java項(xiàng)目中做RBAC權(quán)限控制?
如何在Java項(xiàng)目中做RBAC權(quán)限控制?謝謝!RBAC是基于角色的訪問控制。簡(jiǎn)而言之,一個(gè)用戶有多個(gè)角色,每個(gè)角色都有多個(gè)權(quán)限。在此基礎(chǔ)上,構(gòu)建了“用戶角色權(quán)限”的授權(quán)模型。在這個(gè)模型中,用戶和角色、
如何在Java項(xiàng)目中做RBAC權(quán)限控制?
謝謝
!RBAC是基于角色的訪問控制。簡(jiǎn)而言之,一個(gè)用戶有多個(gè)角色,每個(gè)角色都有多個(gè)權(quán)限。在此基礎(chǔ)上,構(gòu)建了“用戶角色權(quán)限”的授權(quán)模型。在這個(gè)模型中,用戶和角色、角色和權(quán)限之間的關(guān)系通常是多對(duì)多的。
在Java Web項(xiàng)目中,所有這些項(xiàng)目都與權(quán)限管理相關(guān)。那么,我們應(yīng)該如何設(shè)計(jì)和實(shí)現(xiàn)權(quán)限管理呢?
首先,數(shù)據(jù)庫(kù)設(shè)計(jì)需要至少四個(gè)表,或者五個(gè)表,并且添加一個(gè)表來分別定義權(quán)限:
這里,我使用四個(gè)表,并且總體結(jié)構(gòu)如下:
上圖可以清晰的看到表之間的關(guān)系
它用來保存和記錄系統(tǒng)用戶信息
它定義了系統(tǒng)所需的角色,如超級(jí)管理員、人事、財(cái)務(wù)等Django的用戶權(quán)限管理也是一個(gè)常用的RBAC(基于角色的)訪問控制)權(quán)限控制模型。事實(shí)上,這很簡(jiǎn)單:用戶是否有權(quán)訪問視圖取決于用戶是否具有訪問頁(yè)面的必要角色。有兩種方法可以獲得用戶的所有角色。一種是直接分配給用戶的角色。另一個(gè)是用戶所屬的所有組所擁有的角色。用戶間接擁有這些特權(quán)角色。