深入討論通用許可權元件的理論和設計實現。
本人最近正在為公司的多個專案(包括未來專案)做通用的許可權元件,在本論壇上看到”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.功能範圍:目前只能控制功能許可權,資料許可權控制還沒實現。
相關文章
- learun通用許可權系統框架功能實現設計框架
- Linux賬號和許可權管理(理論配寫)Linux
- android 許可權元件設計Android元件
- 管理系統之許可權的設計和實現
- 淺談許可權管理的設計與實現
- 許可權設計
- 通用許可權系統之資料庫表設計資料庫
- 論Java訪問許可權控制的重要性Java訪問許可權
- 選單許可權和按鈕許可權設定
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Hyperf 使用 hyperf-permission 元件實現許可權管理元件
- 基於.NET 5實現的開源通用許可權管理平臺
- TRIZ理論在洗碗機設計中應用探討
- 許可權系統:許可權應用服務設計
- JavaWeb許可權設計原理JavaWeb
- Laravel實現許可權控制Laravel
- 許可權系統:6個許可權概念模型設計模型
- 許可權系統:許可權應用服務設計Tu
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- PHP vs Node.js 深入討論PHPNode.js
- 深入理解Linux許可權Linux
- 關於“斯金納箱”及相關理論在遊戲設計中應用的討論遊戲設計
- 授權許可權服務設計解析
- Linux的檔案存取許可權和0644許可權Linux
- 巢狀滾動效果實現討論巢狀
- HIVE的許可權控制和超級管理員的實現Hive
- 討論下 RESTful 風格 API 的路由設計RESTAPI路由
- 關於IC設計的一次討論
- 基於RBAC的許可權設計模型模型
- 許可權安全管控的設計想法
- 實現直播app原始碼前端許可權設計,需要做什麼?APP原始碼前端
- 分散式系統中,許可權設計實踐分散式
- 基於Spring Security和 JWT的許可權系統設計SpringJWT
- 自動化平臺中的ORM和許可權設計ORM
- DRF內建許可權元件之自定義許可權管理類元件
- 許可權處理 - 用redis實現分散式session~ (cookie && session )Redis分散式SessionCookie
- 打破虛擬與現實邊界的遊戲設計理論框架遊戲設計框架
- [iOS Monkey 討論帖] 整套新的 fastmonkey 討論iOSAST
- 討論