轉載本文需註明出處:EAWorld,違者必究。
引言:
應用基礎框架Coframe是EOS產品自帶的開源應用基礎框架,提供了資源管理、權限管理、用戶以及角色管理等業務應用基礎能力,用戶能夠根據本身的須要進行二次開發與擴展。本文向你們分享Coframe的主要功能和設計實現方案。
目錄:
1、簡介
2、系統資源
3、權限管理
4、組織管理
1、簡介
應用基礎框架也叫Coframe,是產品自帶的開源應用基礎框架,提供了一些基礎功能,用戶能夠根據本身的須要進行二次開發與擴展。
Coframe提供3大核心功能:
系統資源:提供了功能菜單管理、字典碼錶、應用管理折幾個應用框架基礎能力。
權限管理:提供了基於Party(參與者) 的複雜權限計算模型和受權模型。基於參與者、資源與受權等概念可擴展開發出符合用戶個性化需求的參與者模型。
組織管理:提供了機構、崗位、員工、 用戶、工做組等組織機構相關管理功能,支持與已有業務系統對接,使得基於普元EOS Platform 8.0開發的應用可方便地使用同一套組織機構。
邏輯架構
前端
邏輯架構圖展現了基礎應用框架的基本功能模塊,前端Restful形式接口調用後端服務。
進程架構
數據庫
Coframe集成部署示意圖後端
應用基礎框架有兩種部署模式:微服務架構Coframe集成模式和單應用架構Coframe集成模式。
單應用架構很好理解,即直接使用Coframe源碼或者jar包開發應用,後端只有一個server,而集成模式能夠將應用要對外暴露的服務封裝在Coframe中,這樣Coframe能夠對應用進行權限管理。前端使用VUE開發,能夠很方便的使用源碼進行二次開發。
數據模型
架構
應用基礎框架的數據模型即DB表結構,展現了主要的一些表結構,包括權限表,用戶表等。用戶能夠很方便的進行二次開發擴展應用。
2、系統資源
菜單管理
菜單框架支持兩級菜單,用戶能夠自定義菜單的路徑和打開方式等。
app
應用基礎框架提供了幾個基礎的菜單,用戶能夠在頁面編輯菜單或者直接在數據庫端編輯菜單。目前應用基礎框架前端Ui支持二級菜單,用戶能夠根據本身的需求擴展到三級菜單。
字典碼錶
字典碼錶即爲系統內部定義的具備業務屬性的數據字典。
框架
系統管理員能夠配置字典類型和字典項,用於管理系統中的枚舉類型的基礎數據,而且支持excel導入導出。字典類型和字典數據均支持一級子項。
字典類型:對數據進行分類管理
字典數據項:須要管理的枚舉數據
應用管理
應用管理又叫服務權限控制,是指在多應用系統以及單應用系統下,實現對應用的服務功能的權限控制。實現角色、用戶、功能的靈活綁定。
運維
在須要進行權限管理的功能接口方法定義上添加@TarestOperation註解,發佈服務。
微服務
@RequestMapping("/say-hello") @TarestService(group = "SP1", displayName = "服務提供組1", version = "1.0.0.0", groupName = "服務提供組1", name = "ISampleAppHello") public interface ISampleAppHello { @GetMapping @TarestOperation(checkPermission=false,name="DEMO_001",displayName="功能1") String sayHello(); /** * @TarestOperation 在@TarestOperation中默認是不進行權限管理的 * 經過設置checkPermission = true,打開權限控制功能 * **/ @GetMapping(value = "/user") @TarestOperation(checkPermission =true,name="DEMO_002",displayName="功能2") String insertDemo(@RequestParam String name, @RequestParam Integer age); }
單應用系統即只有一個後端應用的系統,(直接以嵌入方式集成Coframe)無需新建應用。
多應用系統即有多個後端應用的系統,Coframe做爲一個獨立的應用部署的系統,須要在coframe中新建應用。如圖所示:
設計
3、權限管理
提供了基於Party(參與者) 的複雜權限計算模型和受權模型。
基於參與者、資源與受權等概念可擴展開發出符合用戶個性化需求的參與者模型。
角色:角色是Coframe一個重要的對象,也能夠成爲權限集,表示系統中權限一個子集,用於控制用戶可使用的功能集合,賦予用戶一個角色表示給用戶必定功能的使用權限。Coframe中角色的分配自己賦予某些用戶,員工,機構等以外,還要向角色授予可訪問某些功能,模塊,表單,視圖等資源的權限。擁有某角色的用戶可訪問角色被授予的資源的權限。
用戶:全部能登陸系統的用戶都是系統中的用戶,須要增長登陸帳號有兩種方式。一種是在用戶管理中新增用戶,第二種是在組織管理中新增員工時關聯一個用戶,若是用戶的登陸名不存在會建立一個新的用戶。
用戶管理
全部能登陸系統的用戶都是系統中的用戶,須要增長登陸帳號有兩種方式。一種是在用戶管理中新增用戶,第二種是在組織管理中新增員工時關聯一個用戶,若是用戶的登陸名不存在會建立一個新的用戶。當Coframe使用IAM的統一認證登陸的時候可以同步IAM端的同一租戶下的用戶信息。
Coframe的用戶帳號由其登陸認證方式決定是本地建立的仍是又IAM即同一認真平臺同步過來的用戶信息。
本地登陸:用戶帳號及其認證密碼在本地存儲,本地認證配置能夠參考:http://t.cn/EUrzEtL
單點登陸:即與IAM集成的sso方式登陸,能夠參考:http://t.cn/EUrZPOs
受權管理
目前提供了菜單受權與服務受權,受權管理即將資源與參與者之間創建關係。以下圖所示,菜單和應用:
3d
便可以視爲資源,而帳號、角色、組織機構、工做中等,便可以視爲參與者。受權表結構以下圖所示:
此註解用來標誌一個數據實體爲受權實體,受權實體須要指定類型:資源、受權主體,好比:
@Entity // 此實體名稱爲order,類型爲resource @AuthEntity(name = "order", type = AuthEntityType.RESOURCE) @Table(name = "SAMPLE_ORDER") public class SampleOrder { @Id @GeneratedValue private Long id; private String name; private Date date; }
4、組織管理
機構管理
機構指企業的組織機構,通常包含機構、崗位、員工等信息。
機構管理經過對一棵機構人員樹的維護把機構、崗位、人員等信息和關係維護好,並可設置這些組織對象的角色。
工做組管理
工做組與機構相似,是爲了將項目組、工做組等臨時性的組織機構管理起來,業務上一般工做組有必定的時效性,是一個很是設機構。
工做組是企業動態建立的組織機構分組,工做組下能夠有子工做組、員工信息。
總結:
以上介紹了應用基礎框架的主要基礎功能,以及設計過程當中的一些理念,好比受權模型等。
做爲開源應用基礎框架會隨着規劃發展不斷完善,用戶能夠根據自身的需求來更改適配。也很是歡迎你們可以更多參與使其更加健壯。
關於做者:許方傑,普元資深軟件工程師,曾在華爲負責項目核心模塊開發,運維等,擅長Web、運維等領域技術,參與普元 EOS 8微服務平臺應用基礎框架(Coframe)的建設與實施。
關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!