国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

動(dòng)態(tài)Proxy與Java ACL用戶訪問控制機(jī)制實(shí)現(xiàn)

瀏覽:118日期:2024-06-05 13:04:08
用戶訪問控制(Access control )機(jī)制總是圍繞粗粒度和細(xì)粒度兩個(gè)方面來討論:

粗粒度控制:可以規(guī)定訪問整個(gè)對象或?qū)ο笕旱哪硞€(gè)層,而細(xì)粒度控制則總是在方法或?qū)傩詫舆M(jìn)行控制,比如:

允許一個(gè)文件為只讀是屬于粗粒度控制,而允許對這個(gè)文件某行有寫操作則屬于細(xì)粒度控制。

一個(gè)好的用戶控制機(jī)制當(dāng)然既允許粗粒度也允許細(xì)粒度控制,在Jive中我們看到是使用Proxy來達(dá)到這個(gè)目的,但是我們也發(fā)現(xiàn),由于需要對每個(gè)類都要進(jìn)行細(xì)粒度控制,所以必然對每個(gè)類都要做一個(gè)Proxy類,這樣帶來了很多Proxy類,如ForumProxy ForumThreadProxy ForumFactoryProxy等,無形增加了系統(tǒng)復(fù)雜性。

使用動(dòng)態(tài)Proxy可以很好的解決這個(gè)問題。再結(jié)合java.security.acl的ACL機(jī)制,我們就可以靈活地實(shí)現(xiàn)粗粒度和細(xì)粒度的雙重控制。

當(dāng)一個(gè)用戶login后,我們就要在內(nèi)存中為其建立相應(yīng)的授權(quán)訪問機(jī)制,使用java.security.acl可以很方便的建立這樣一個(gè)安全系統(tǒng)。

首先任何一個(gè)對象都應(yīng)該有個(gè)基本屬性:擁有者 或擁有者所屬組(Windows中每個(gè)目錄安全描述符都由4部分構(gòu)成:對象的創(chuàng)建者、對象所屬的組、自由存取控制和系統(tǒng)存取控制)。

1. Java acl開始第一步是建立一個(gè)主體 Principal,其中SecurityOwner是主體的擁有者: private static final Principal _securityOwner = new PrincipalImpl('SecurityOwner');

2. 當(dāng)用戶login進(jìn)來時(shí),他帶有兩個(gè)基本數(shù)據(jù):訪問密碼和他要訪問的對象ApplicationName。首先驗(yàn)證用戶名和密碼,然后從數(shù)據(jù)庫中取出其權(quán)限數(shù)據(jù),建立Permission,這里使用Feature繼承了Permission,在Feature中定義了有關(guān)權(quán)限的細(xì)節(jié)數(shù)據(jù)(如讀 寫 刪)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 天等县| 会同县| 临高县| 临沂市| 剑河县| 米林县| 澎湖县| 温宿县| 陆丰市| 乳山市| 迭部县| 弥勒县| 林甸县| 三江| 城口县| 新丰县| 常德市| 高陵县| 库车县| 沽源县| 高青县| 钟祥市| 平乐县| 巴东县| 福清市| 永城市| 苍山县| 宁陕县| 康定县| 江西省| 虹口区| 巩留县| 那曲县| 岳西县| 江川县| 囊谦县| 温泉县| 鄂伦春自治旗| 调兵山市| 大方县| 平远县|