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