java是什么 如何在Java項(xiàng)目中做RBAC權(quán)限控制?
如何在Java項(xiàng)目中做RBAC權(quán)限控制?謝謝!RBAC是基于角色的訪問(wèn)控制。簡(jiǎn)而言之,一個(gè)用戶有多個(gè)角色,每個(gè)角色都有多個(gè)權(quán)限。在此基礎(chǔ)上,構(gòu)建了“用戶角色權(quán)限”的授權(quán)模型。在這個(gè)模型中,用戶和角色、
如何在Java項(xiàng)目中做RBAC權(quán)限控制?
謝謝
!RBAC是基于角色的訪問(wèn)控制。簡(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è)表來(lái)分別定義權(quán)限:
這里,我使用四個(gè)表,其總體結(jié)構(gòu)如下:
上圖可以清晰地看到各表之間的關(guān)系
用于保存和記錄系統(tǒng)用戶信息
它定義了系統(tǒng)所需的角色,如超級(jí)管理員、人事、財(cái)務(wù)等實(shí)際上,任何語(yǔ)言的角色都是一樣的。要從一種語(yǔ)言開(kāi)始,首先需要理解語(yǔ)言語(yǔ)法(可以使用),然后理解標(biāo)準(zhǔn)庫(kù)(可以使用)。有了這兩個(gè)步驟,再加上對(duì)其他語(yǔ)言的一點(diǎn)了解,就可以算是一個(gè)不錯(cuò)的用戶起步了,我們現(xiàn)在招了很多畢業(yè)生,經(jīng)過(guò)1~2個(gè)月的輔導(dǎo),就可以達(dá)到這個(gè)階段了。
剩下的是第三步,通過(guò)項(xiàng)目或產(chǎn)品的實(shí)踐加深對(duì)技術(shù)和業(yè)務(wù)的理解。在這個(gè)階段,我們通常依靠自學(xué)、谷歌和理解。兩三年后,我們可以發(fā)現(xiàn),有些人對(duì)技術(shù)和業(yè)務(wù)的了解很深(老手),有些人還很膚淺。這段時(shí)間通常是另一個(gè)跳槽階段。在這個(gè)時(shí)候,不同的人的工資水平會(huì)有很大的差異。
總而言之,程序員最重要的是持續(xù)學(xué)習(xí)(第三階段)。事實(shí)上,IT行業(yè)是一個(gè)需要不斷學(xué)習(xí)的行業(yè)(因?yàn)榧夹g(shù)更新太快)。初出茅廬,我們都有同樣的基礎(chǔ)和能力。這一差距將在2-3年后出現(xiàn)。如果你是貧窮的一方,那就意味著你工作不夠努力。
最后,Java主要用于服務(wù)器。由于其出色的內(nèi)存管理,它阻止了許多程序員的能力差異(能力較弱的程序員可以編寫較少的糟糕系統(tǒng)),并且適合于長(zhǎng)期的服務(wù)器項(xiàng)目(如web和其他非UI應(yīng)用程序)。
雖然也有優(yōu)秀的UI庫(kù)(如SWT)和優(yōu)秀的桌面應(yīng)用程序(如idea、eclipse和netbean),但是桌面軟件應(yīng)用程序仍然很少,需要帶JRE,所以負(fù)擔(dān)相對(duì)較大。