深入討論通用權(quán)限組件的理論和設(shè)計實現(xiàn)。 作者:johnnylzb 發(fā)表時間:2008年02月03日 15:49 回復(fù) 原貼網(wǎng)址: http://www.jdon.com/jivejdon/thread/33471.html 本人最近正在為公司的多個項目(包括未來項目)做通用的權(quán)限組件,在本論壇上看到”dunel”大俠的一個帖子 http://www.jdon.com/jivejdon/thread/13450.html,然后才注冊并發(fā)表此 話題,歡迎大家耐心閱讀并指正。
目前已經(jīng)發(fā)布了一個版本并供幾個項目使用,先簡單介紹一下組件的情況:
1.模式:建立在RBAC理論技術(shù)上的權(quán)限模式
2.技術(shù):是以Java編寫的一個組件(計劃在下一個版本做成一個框架)
3.結(jié)構(gòu):包括兩部分: (A)權(quán)限配置管理平臺,一個Web應(yīng)用(即一個war包),用于注冊受控資源,管理角色,和授權(quán)(把角色指派給宿主系統(tǒng)的用戶),本平臺是可選的 (B)權(quán)限服務(wù)組件,一個嵌入式組件(即一個jar包),提供訪問控制服務(wù)和權(quán)限配置服務(wù)(后者供宿主系統(tǒng)通過接口調(diào)用實現(xiàn)權(quán)限配置管理,可以代替權(quán)限配置管理平臺)
4.實現(xiàn)機制:權(quán)限相關(guān)數(shù)據(jù)與宿主系統(tǒng)的數(shù)據(jù)邏輯上式獨立的,宿主系統(tǒng)通過嵌入權(quán)限組件,本地調(diào)用組件提供的相關(guān)服務(wù)接口實現(xiàn)權(quán)限配置管理和訪問控制,組件提供四種服務(wù): (A)授權(quán)服務(wù):用戶訪問宿主系統(tǒng)的受控資源時,宿主系統(tǒng)把用戶ID和被訪問資源ID傳遞到授權(quán)服務(wù)接口,授權(quán)服務(wù)接口返回是否可以訪問的結(jié)果信息,宿主系統(tǒng)可以一次加載用戶的所有權(quán)限信息,也可以在每次用戶訪問時才調(diào)用授權(quán)服務(wù)接口。 (B)實體管理服務(wù):提供受控資源(實體)的增、刪、改、查等管理服務(wù)。 (C)角色管理服務(wù):提供角色的增、刪改、查管理服務(wù)和為角色配置受控資源的服務(wù) (D)授權(quán)管理服務(wù):提供為宿主系統(tǒng)用戶指派、移除角色的服務(wù)。 宿主系統(tǒng)可以把UI相關(guān)的實體名以URI來注冊,權(quán)限組件提供默認的Filter進行攔截,對API的實體名以API對應(yīng)的方法名的全限定名進行注冊,權(quán)限組件提供默認的Interceptor以AOP的方式進行攔截,這樣,宿主系統(tǒng)就不需要在業(yè)務(wù)層和頁面層編寫與權(quán)限控制相關(guān)的代碼,權(quán)限這個功能編程了一個可以切入和移除的Aspect。
5.功能范圍:目前只能控制功能權(quán)限,數(shù)據(jù)權(quán)限控制還沒實現(xiàn)。 |