<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7
                                     

          權(quán)限控制可以看作一個filter模式的應(yīng)用,  這也符合AOP思想的應(yīng)用條件。在一個簡化的圖象中,我們只需要將一個判別函數(shù) isAllowed(subject, operation, resource)插入到所有安全敏感的函數(shù)調(diào)用之前就可以了。雖然概念上很完美,具體實現(xiàn)的時候仍然有一些細(xì)節(jié)上的問題。基本的困難在于很難在最細(xì)的粒 度上指定權(quán)限控制規(guī)則(連續(xù)的?動態(tài)的?可擴(kuò)展的?),因而我們只能在一些關(guān)鍵處指定權(quán)限規(guī)則,或者設(shè)置一些整體性的權(quán)限策略,然后通過特定的推理來推導(dǎo) 出細(xì)粒度的權(quán)限規(guī)則,這就引出結(jié)構(gòu)的問題。我們需要能夠?qū)?quán)限控制策略進(jìn)行有效的描述(控制策略的結(jié)構(gòu)),并且決定如何與程序結(jié)構(gòu)相結(jié)合。 subject, operation和resource為了支持推理,都可能需要分化出復(fù)雜的結(jié)構(gòu),而不再是簡單的原子性的概念。而在與程序結(jié)構(gòu)結(jié)合這一方面,雖然AOP 使得我們可以擴(kuò)展任何函數(shù),但這種擴(kuò)展需要依賴于cutpoint處所能得到的信息,因而權(quán)限控制的有效實施也非常依賴于功能函數(shù)本身良好的設(shè)計。有的時 候因為需要對結(jié)構(gòu)有過于明確的假定,權(quán)限控制的實現(xiàn)不得不犧牲一定的通用性。

       下面我們將分別討論一下operation, subject和resource的結(jié)構(gòu)分解的問題。首先是operation。
        說到推理結(jié)構(gòu),讓人最先想起的就是決策樹,樹形結(jié)構(gòu),在面向?qū)ο笳Z言中可以對應(yīng)于繼承。金字塔式的樹形結(jié)構(gòu)也正是在現(xiàn)實世界中我們應(yīng)用最多的控制結(jié)構(gòu)。通過層層分解,operation的結(jié)構(gòu)可以組織為一棵樹,
       應(yīng)用程序 ==> 各個子系統(tǒng) ==> 每個子系統(tǒng)的功能模塊 ==> 子功能模塊
          ==> 每個模塊的功能點(具有明確的業(yè)務(wù)含義) ==> 每個功能點對應(yīng)的訪問函數(shù)(程序?qū)崿F(xiàn)中的結(jié)構(gòu))
       一個常見的需求是根據(jù)權(quán)限配置決定系統(tǒng)菜單樹的顯示,一般控制用戶只能看到自己有權(quán)操作的功能模塊和功能按鈕。這種需求的解決方法是非常直接的。首先,在 后臺建立子系統(tǒng)到功能模塊,功能模塊到功能點以及功能點到實現(xiàn)函數(shù)之間的映射表(如果程序組織具有嚴(yán)格規(guī)范,這甚至可以通過自動搜集得到)。然后,在權(quán)限 配置時建立用戶與功能點之間的關(guān)聯(lián)。此時,通過一個視圖,我們就可以搜集到用戶對哪些功能模塊具有訪問權(quán)限的信息。

       為了控制菜單樹的顯示,witrix平臺中的SiteMap采用如下策略:
       1. 如果用戶對某個子功能具有操作權(quán)限,則所有父菜單項都缺省可用
       2. 如果用戶對某個功能具有操作權(quán)限,并且標(biāo)記為cascade,則所有子菜單項都自動缺省可用
       3. 如果明確指定功能不可用,則該菜單及子菜單都強(qiáng)制不可用
       4. 如果明確指定功能對所有人可用,則不驗證權(quán)限,所有子菜單自動缺省可用
       4. 強(qiáng)制設(shè)定覆蓋缺省值
       5. 不可用的菜單缺省不可見
       6. 明確標(biāo)記為可見的菜單即使不可用也可見
       7. 父菜單可見子菜單才可見
    我們通過預(yù)計算來綜合考慮這些相互影響的控制策略。盡量將推導(dǎo)運(yùn)算預(yù)先完成也是解決性能問題的不二法門。

      在witrix平臺中,每一次網(wǎng)絡(luò)訪問的url都符合jsplet框架所要求的對象調(diào)用格式,需要指定objectName和objectEvent參 數(shù),這就對應(yīng)于功能點的訪問函數(shù)。訪問控制點集中在objectManager并且訪問格式是標(biāo)準(zhǔn)的。使用spring等AOP方式實現(xiàn)細(xì)粒度訪問控制, 困難似乎在于不容易引入外部配置信息(例如功能點信息等),而且控制點所對應(yīng)的對象函數(shù)格式也不統(tǒng)一,因而多數(shù)需要在細(xì)粒度上一一指定。

    主站蜘蛛池模板: 在线观看免费污视频| 91香焦国产线观看看免费| 免费黄网在线观看| 亚洲天堂一区在线| 91av免费观看| 亚洲制服在线观看| 免费网站看v片在线香蕉| 亚洲精品国产高清在线观看| 四虎成人精品一区二区免费网站| 久久乐国产综合亚洲精品| 毛片a级毛片免费观看免下载| 亚洲精品永久在线观看| 国产精品免费视频网站| 日韩大片免费观看视频播放| 在线观看亚洲精品福利片| 日韩a级无码免费视频| 久久亚洲私人国产精品| 日韩免费一区二区三区在线| 亚洲AV香蕉一区区二区三区| 亚洲国产精品日韩| 日本在线看片免费| 亚洲午夜电影在线观看高清| 国产成人免费片在线视频观看| 免费无码又爽又黄又刺激网站| 亚洲国产精品无码成人片久久| 99热这里只有精品免费播放| 亚洲一区二区三区高清在线观看| 亚洲不卡AV影片在线播放| 久久午夜羞羞影院免费观看| 亚洲日日做天天做日日谢| 亚洲精品视频免费观看| 日韩免费无码视频一区二区三区| 国产成人精品日本亚洲11| 亚洲精品视频在线看| 18女人毛片水真多免费| 色窝窝亚洲AV网在线观看| 99ri精品国产亚洲| 免费va人成视频网站全| 久久精品成人免费看| 亚洲成AV人影片在线观看| 久久久久亚洲AV无码专区首|