隨筆-26  評(píng)論-111  文章-19  trackbacks-0


          1. 用戶可以從外部的系統(tǒng)接入,模塊中的用戶只有用戶名,密碼和描述這三個(gè)最基本的系統(tǒng),然后通過(guò)ID和外部系統(tǒng)的用戶建立聯(lián)系

          2. 角色之間可以繼承,可以有父角色和子角色,而且個(gè)數(shù)不限,允許多重繼承,通過(guò)繼承之后,角色可以擁有所有父角色的權(quán)限

          3. 權(quán)限的劃分方式
          ????
          ??? a.權(quán)限用事件來(lái)劃分,每個(gè)事件通過(guò)一個(gè)handle來(lái)進(jìn)行處理
          ???
          ??? b.一個(gè)handle就是一個(gè)class

          ??? c.事件的來(lái)源是一個(gè)配置文件,因此配置文件的方式可以是這樣的


          <?xml version="1.0" encoding="GBK"?>
          <control>
          ?<!-- 是否自動(dòng)轉(zhuǎn)向 默認(rèn)為false-->
          ?<isforward>false</isforward>
          ?<!-- 組件 -->
          ?<cmp id="cmp1" name="組件一">
          ??<!-- 事件 -->
          ??<event id="event1" name="事件一">
          ???<handle>com.snoics.cmp.event.Event1</handle>
          ???<view>/url1/pagename1</view>
          ??</event>
          ??<event id="event2" name="事件二">
          ???<handle>com.snoics.cmp.event.Event2</handle>
          ???<view>/url2/pagename2</view>
          ??</event>
          ?</cmp>
          ?<cmp id="cmp2" name="組件二">
          ??<event id="event3" name="事件三">
          ???<handle>com.snoics.cmp.event.Event3</handle>
          ???<view>/url3/pagename3</view>
          ??</event>
          ??<event id="event4" name="事件四">
          ???<handle>com.snoics.cmp.event.Event4</handle>
          ???<view>/url4/pagename4</view>
          ??</event>
          ?</cmp>
          </control>

          ?
          通過(guò)解析這個(gè)配置文件,可以得到每個(gè)事件的ID,這個(gè)ID就是以后的權(quán)限標(biāo)志

          給角色分配的權(quán)限就是這樣的一個(gè)一個(gè)的標(biāo)志


          4.??通過(guò)AOP給應(yīng)用系統(tǒng)加入權(quán)限控制

          ???? 系統(tǒng)在執(zhí)行的過(guò)程中,能自動(dòng)的進(jìn)行攔截,如果發(fā)現(xiàn)當(dāng)前的class是處于配置文件中的某一個(gè)handle的時(shí)候,自動(dòng)進(jìn)行權(quán)限驗(yàn)證,分析當(dāng)前用戶所擁有的角色中是否具有執(zhí)行相關(guān)的handle的權(quán)限,在驗(yàn)證通過(guò)以后允許執(zhí)行這個(gè)handle中的操作,否則拒絕執(zhí)行


          這樣做的好處就是能夠不在業(yè)務(wù)系統(tǒng)中寫(xiě)入任何和權(quán)限相關(guān)的代碼,與權(quán)限相關(guān)的部分全部都是通過(guò)配置文件的配置來(lái)進(jìn)行處理的,同時(shí)實(shí)現(xiàn)了權(quán)限控制的完全組件化.


          如果大家有什么好的建議歡迎一起討論

          posted on 2006-02-16 13:11 snoics 閱讀(1871) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): 學(xué)習(xí) . 感悟

          評(píng)論:
          # re: 關(guān)于權(quán)限模塊的設(shè)想 2006-02-16 13:18 | Rivarez
          權(quán)限體系,包括對(duì)操做和資源的控制,以及互斥權(quán)限的定義。你說(shuō)的只有對(duì)操做的定義,資源和互斥權(quán)限,如何處理呢?  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于權(quán)限模塊的設(shè)想 2006-02-16 13:23 | snoics
          恩 資源和互斥權(quán)限 這確實(shí)是一個(gè)問(wèn)題,單單通過(guò)配置不能實(shí)現(xiàn)對(duì)它的控制,不過(guò)我想如果通過(guò)接口的實(shí)現(xiàn)應(yīng)該還是有可能部分實(shí)現(xiàn)的  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于權(quán)限模塊的設(shè)想 2007-05-29 23:12 | design
          哥哥都是牛×人些!
          感動(dòng)中......!  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 湘乡市| 黄石市| 永吉县| 富宁县| 靖江市| 绥棱县| 电白县| 丹凤县| 荆州市| 雷山县| 宁明县| 曲松县| 高陵县| 敦煌市| 南岸区| 丽江市| 诏安县| 含山县| 宝丰县| 鄂伦春自治旗| 桐柏县| 江都市| 鄄城县| 杭锦后旗| 徐州市| 大关县| 左权县| 房产| 轮台县| 清镇市| 景宁| 双桥区| 措美县| 布尔津县| 济阳县| 白水县| 屯留县| 柏乡县| 全南县| 通河县| 安图县|