深入討論通用許可權元件的理論和設計實現。
本人最近正在為公司的多個專案(包括未來專案)做通用的許可權元件,在本論壇上看到”dunel”大俠的一個帖子 http://www.jdon.com/jivejdon/thread/13450.html,然後才註冊並發表此 話題,歡迎大家耐心閱讀並指正。
目前已經發布了一個版本並供幾個專案使用,先簡單介紹一下元件的情況:
1.模式:建立在RBAC理論技術上的許可權模式
2.技術:是以Java編寫的一個元件(計劃在下一個版本做成一個框架)
3.結構:包括兩部分:
(A)許可權配置管理平臺,一個Web應用(即一個war包),用於註冊受控資源,管理角色,和授權(把角色指派給宿主系統的使用者),本平臺是可選的
(B)許可權服務元件,一個嵌入式元件(即一個jar包),提供訪問控制服務和許可權配置服務(後者供宿主系統透過介面呼叫實現許可權配置管理,可以代替許可權配置管理平臺)
4.實現機制:許可權相關資料與宿主系統的資料邏輯上式獨立的,宿主系統透過嵌入許可權元件,本地呼叫元件提供的相關服務介面實現許可權配置管理和訪問控制,元件提供四種服務:
(A)授權服務:使用者訪問宿主系統的受控資源時,宿主系統把使用者ID和被訪問資源ID傳遞到授權服務介面,授權服務介面返回是否可以訪問的結果資訊,宿主系統可以一次載入使用者的所有許可權資訊,也可以在每次使用者訪問時才呼叫授權服務介面。
(B)實體管理服務:提供受控資源(實體)的增、刪、改、查等管理服務。
(C)角色管理服務:提供角色的增、刪改、查管理服務和為角色配置受控資源的服務
(D)授權管理服務:提供為宿主系統使用者指派、移除角色的服務。
宿主系統可以把UI相關的實體名以URI來註冊,許可權元件提供預設的Filter進行攔截,對API的實體名以API對應的方法名的全限定名進行註冊,許可權元件提供預設的Interceptor以AOP的方式進行攔截,這樣,宿主系統就不需要在業務層和頁面層編寫與許可權控制相關的程式碼,許可權這個功能程式設計了一個可以切入和移除的Aspect。
5.功能範圍:目前只能控制功能許可權,資料許可權控制還沒實現。
目前已經發布了一個版本並供幾個專案使用,先簡單介紹一下元件的情況:
1.模式:建立在RBAC理論技術上的許可權模式
2.技術:是以Java編寫的一個元件(計劃在下一個版本做成一個框架)
3.結構:包括兩部分:
(A)許可權配置管理平臺,一個Web應用(即一個war包),用於註冊受控資源,管理角色,和授權(把角色指派給宿主系統的使用者),本平臺是可選的
(B)許可權服務元件,一個嵌入式元件(即一個jar包),提供訪問控制服務和許可權配置服務(後者供宿主系統透過介面呼叫實現許可權配置管理,可以代替許可權配置管理平臺)
4.實現機制:許可權相關資料與宿主系統的資料邏輯上式獨立的,宿主系統透過嵌入許可權元件,本地呼叫元件提供的相關服務介面實現許可權配置管理和訪問控制,元件提供四種服務:
(A)授權服務:使用者訪問宿主系統的受控資源時,宿主系統把使用者ID和被訪問資源ID傳遞到授權服務介面,授權服務介面返回是否可以訪問的結果資訊,宿主系統可以一次載入使用者的所有許可權資訊,也可以在每次使用者訪問時才呼叫授權服務介面。
(B)實體管理服務:提供受控資源(實體)的增、刪、改、查等管理服務。
(C)角色管理服務:提供角色的增、刪改、查管理服務和為角色配置受控資源的服務
(D)授權管理服務:提供為宿主系統使用者指派、移除角色的服務。
宿主系統可以把UI相關的實體名以URI來註冊,許可權元件提供預設的Filter進行攔截,對API的實體名以API對應的方法名的全限定名進行註冊,許可權元件提供預設的Interceptor以AOP的方式進行攔截,這樣,宿主系統就不需要在業務層和頁面層編寫與許可權控制相關的程式碼,許可權這個功能程式設計了一個可以切入和移除的Aspect。
5.功能範圍:目前只能控制功能許可權,資料許可權控制還沒實現。
相關文章
- [技術討論]資料許可權中的理論和實際
- 許可權系統設計的理論基礎--RBAC
- 許可權系統設計--概論
- learun通用許可權系統框架功能實現設計框架
- Linux賬號和許可權管理(理論配寫)Linux
- 管理系統之許可權的設計和實現
- 第十一篇:Linux中許可權的再討論( 下 )Linux
- android 許可權元件設計Android元件
- 使用者許可權設計(三)——通用資料許可權管理系統設計
- 第十篇:Linux中許可權的再討論( 上 )Linux
- 討論設計模式和00思想設計模式
- [軟體工程]交換程式設計方法的深入討論軟體工程程式設計
- 將這兩天關於許可權的討論歸檔在這裡
- 淺談許可權管理的設計與實現
- Java實現許可權管理-專案設計Java
- [軟體工程]交換程式設計方法的深入討論(續)軟體工程程式設計
- 論Java訪問許可權控制的重要性Java訪問許可權
- 表結構設計討論
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Hyperf 使用 hyperf-permission 元件實現許可權管理元件
- 和ctrl討論linux系統上s,t許可權位的問題,頗有感觸,總結如下Linux
- 基於.NET 5實現的開源通用許可權管理平臺
- [技術討論]多使用者(多公司)的資料庫設計討論資料庫
- Gear: 一個 Go web framework 的設計思考和討論GoWebFramework
- 通用許可權系統介紹
- [討論]“消滅”程式設計師?程式設計師
- Laravel實現許可權控制Laravel
- JavaWeb許可權設計原理JavaWeb
- 許可權系統設計
- 我們現在沒有討論的但有必要討論的模式模式
- 設計實現業務系統中的使用者許可權管理
- 通用許可權管理系統元件(GPM-GeneralPermissionsManager)中超級經典的元件
- 關於“斯金納箱”及相關理論在遊戲設計中應用的討論遊戲設計
- Django許可權機制的實現Django
- PHP vs Node.js 深入討論PHPNode.js
- TRIZ理論在洗碗機設計中應用探討
- 打破虛擬與現實邊界的遊戲設計理論框架遊戲設計框架
- 授權許可權服務設計解析