之前介紹過許可權模型和訪問控制,我們做的專案就是基於通用許可權模型和基於資源的訪問控制,而且從總體上是實現了粗粒度的許可權管理,但是根據不同的需求也實現了細粒度的許可權管理。目前所有資源都是具有
url的,也可以說我們的資源就是一堆有規則的
url,這樣無論是我們從
springmvc
攔截還是
url的攔截,只要
url具有一定的規則,那攔截起來就很好實現。那麼,什麼是粗粒度和細粒度許可權呢。
粗粒度許可權管理,對資源型別的許可權管理。資源型別比如:選單、
url連線、使用者新增頁面、使用者資訊、類方法、頁面中按鈕。
粗粒度許可權管理比如:超級管理員可以訪問戶新增頁面、使用者資訊等全部頁面。
部門管理員可以訪問使用者資訊頁面包括頁面中所有按鈕。
細粒度許可權管理,對資源例項的許可權管理。資源例項就資源型別的具體化,比如:使用者id為
001的修改連線,
1110
班的使用者資訊、行政部的員工。
細粒度許可權管理就是資料級別的許可權管理。
細粒度許可權管理比如:部門經理只可以訪問本部門的員工資訊,使用者只可以看到自己的選單,大區經理只能檢視本轄區的銷售訂單。。
系統有乙個使用者列表查詢頁面,對使用者列表查詢分許可權,如果粗顆粒管理,張三和李四都有使用者列表查詢的許可權,張三和李四都可以訪問使用者列表查詢。
進一步進行細顆粒管理,張三(行政部)和李四
(開發部
)只可以查詢自己本部門的使用者資訊。張三只能檢視行政部 的使用者資訊,李四只能檢視開發部門的使用者資訊。細粒度許可權管理就是資料級別的許可權管理。
粗粒度許可權管理比較容易將許可權管理的**抽取出來在系統架構級別統一處理。比如:通過
springmvc
的***實現授權。
對細粒度許可權管理在資料級別是沒有共性可言,針對細粒度許可權管理就是系統業務邏輯的一部分,如果在業務層去處理相對比較簡單,如果將細粒度許可權管理統一在系統架構級別去抽取,比較困難,即使抽取的功能可能也存在擴充套件不強。建議細粒度許可權管理在業務層去控制。
比如:部門經理只查詢本部門員工資訊,在
service
介面提供乙個部門
id的引數,
controller
中根據當前使用者的資訊得到該使用者屬於哪個部門,呼叫
service
時將部門
id傳入
service
,實現該使用者只查詢本部門的員工。
通過角色控制門戶顯示各子系統資源,高校平台教學秘書進入考試系統可以使用考試配置等資源,學生角色進入考試系統只可進行考試和查詢成績。
許可權中給不同使用者分配角色,左側使用者樹,通過細粒度控制不同角色進入系統只能看到相應人員所在的機構下的所有人員,並不能看到其他機構的人。
不管是用粗粒度還是細粒度來實現許可權管理,根據不同的業務需要即可,並沒有明確的界限。
002 許可權管理解決方案
粗粒度許可權管理,對資源型別的許可權管理。資源型別比如 選單 url連線 使用者新增頁面 使用者資訊 類方法 頁面中按鈕。粗粒度許可權管理比如 超級管理員可以訪問戶新增頁面 使用者資訊等全部頁面。部門管理員可以訪問使用者資訊頁面包括 頁面中所有按鈕。細粒度許可權管理,對資源例項的許可權管理。資源例項...
公文管理解決方案
一.方案概述 公文作為一種規範性文書,具有法律性 指導性 政令性強的特點,是企事業單位政令上通下達的重要方式。及時 準確 安全地處理 控制和 管理公文,方能保障企事業單位正常運轉,確保組織權威和政令暢通。h3 bpm公文管理解決方案以工作流為基礎,結合企事業單位的辦事 公文及相關管理規範,對需要多個...
合同管理解決方案
一.方案概述 合同是組織與組織間所訂協議的法律 表現形式,體現著雙方對於合作在法律和道德上的承諾。然而,大多數企業的合同管理都或多或少存在合同審批過程不規範 簽訂草率 審 批權責不清 合同執行跟蹤難 合同流程效率低下等問題。加強合同管理,對各企業預防合同糾紛,減少因合同疏漏而造成的經濟損失,提 高經...