1. 用戶可以從外部的系統接入,模塊中的用戶只有用戶名,密碼和描述這三個最基本的系統,然后通過ID和外部系統的用戶建立聯系
2. 角色之間可以繼承,可以有父角色和子角色,而且個數不限,允許多重繼承,通過繼承之后,角色可以擁有所有父角色的權限
3. 權限的劃分方式
????
??? a.權限用事件來劃分,每個事件通過一個handle來進行處理
???
??? b.一個handle就是一個class
??? c.事件的來源是一個配置文件,因此配置文件的方式可以是這樣的
<?xml version="1.0" encoding="GBK"?>
<control>
?<!-- 是否自動轉向 默認為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>
?
通過解析這個配置文件,可以得到每個事件的ID,這個ID就是以后的權限標志
給角色分配的權限就是這樣的一個一個的標志
4.??通過AOP給應用系統加入權限控制
???? 系統在執行的過程中,能自動的進行攔截,如果發現當前的class是處于配置文件中的某一個handle的時候,自動進行權限驗證,分析當前用戶所擁有的角色中是否具有執行相關的handle的權限,在驗證通過以后允許執行這個handle中的操作,否則拒絕執行
這樣做的好處就是能夠不在業務系統中寫入任何和權限相關的代碼,與權限相關的部分全部都是通過配置文件的配置來進行處理的,同時實現了權限控制的完全組件化.
如果大家有什么好的建議歡迎一起討論
posted on 2006-02-16 13:11
snoics 閱讀(1864)
評論(3) 編輯 收藏 所屬分類:
學習 . 感悟