權(quán)限控制之粗粒度與細(xì)粒度概念及實(shí)現(xiàn)簡單介紹
本文簡單介紹了權(quán)限控制之粗粒度與細(xì)粒度概念及實(shí)現(xiàn),下面看看具體內(nèi)容。
1. 什么是粗粒度和細(xì)粒度權(quán)限
粗粒度權(quán)限管理,對資源類型的權(quán)限管理。資源類型比如:菜單、url連接、用戶添加頁面、用戶信息、類方法、頁面中按鈕。。
粗粒度權(quán)限管理比如:超級管理員可以訪問戶添加頁面、用戶信息等全部頁面。
部門管理員可以訪問用戶信息頁面包括 頁面中所有按鈕。
細(xì)粒度權(quán)限管理,對資源實(shí)例的權(quán)限管理。資源實(shí)例就資源類型的具體化,比如:用戶id為001的修改連接,1110班的用戶信息、行政部的員工。
細(xì)粒度權(quán)限管理就是數(shù)據(jù)級別的權(quán)限管理。
細(xì)粒度權(quán)限管理比如:部門經(jīng)理只可以訪問本部門的員工信息,用戶只可以看到自己的菜單,大區(qū)經(jīng)理只能查看本轄區(qū)的銷售訂單。。
粗粒度和細(xì)粒度例子:
系統(tǒng)有一個(gè)用戶列表查詢頁面,對用戶列表查詢分權(quán)限,如果粗顆粒管理,張三和李四都有用戶列表查詢的權(quán)限,張三和李四都可以訪問用戶列表查詢。
進(jìn)一步進(jìn)行細(xì)顆粒管理,張三(行政部)和李四(開發(fā)部)只可以查詢自己本部門的用戶信息。張三只能查看行政部 的用戶信息,李四只能查看開發(fā)部門的用戶信息。細(xì)粒度權(quán)限管理就是數(shù)據(jù)級別的權(quán)限管理。
2. 如何實(shí)現(xiàn)粗粒度和細(xì)粒度權(quán)限管理
如何實(shí)現(xiàn)粗粒度權(quán)限管理?
粗粒度權(quán)限管理比較容易將權(quán)限管理的代碼抽取出來在系統(tǒng)架構(gòu)級別統(tǒng)一處理。比如:通過springmvc的攔截器實(shí)現(xiàn)授權(quán)。
如何實(shí)現(xiàn)細(xì)粒度權(quán)限管理?
對細(xì)粒度權(quán)限管理在數(shù)據(jù)級別是沒有共性可言,針對細(xì)粒度權(quán)限管理就是系統(tǒng)業(yè)務(wù)邏輯的一部分,如果在業(yè)務(wù)層去處理相對比較簡單,如果將細(xì)粒度權(quán)限管理統(tǒng)一在系統(tǒng)架構(gòu)級別去抽取,比較困難,即使抽取的功能可能也存在擴(kuò)展不強(qiáng)。
建議細(xì)粒度權(quán)限管理在業(yè)務(wù)層去控制。
比如:部門經(jīng)理只查詢本部門員工信息,在service接口提供一個(gè)部門id的參數(shù),controller中根據(jù)當(dāng)前用戶的信息得到該 用戶屬于哪個(gè)部門,調(diào)用service時(shí)將部門id傳入service,實(shí)現(xiàn)該用戶只查詢本部門的員工。
3. 基于url攔截的方式實(shí)現(xiàn)
基于url攔截的方式實(shí)現(xiàn)在實(shí)際開發(fā)中比較常用的一種方式。
對于web系統(tǒng),通過filter過慮器實(shí)現(xiàn)url攔截,也可以使用springmvc的攔截器實(shí)現(xiàn)基于url的攔截。
4. 使用權(quán)限管理框架實(shí)現(xiàn)
對于粗粒度權(quán)限管理,建議使用優(yōu)秀權(quán)限管理框架來實(shí)現(xiàn),節(jié)省開發(fā)成功,提高開發(fā)效率。
shiro就是一個(gè)優(yōu)秀權(quán)限管理框架。
總結(jié)
以上就是本文關(guān)于權(quán)限控制之粗粒度與細(xì)粒度概念及實(shí)現(xiàn)簡單介紹的全部內(nèi)容,希望對大家有所幫助。有什么問題可以隨時(shí)留言,小編會及時(shí)回復(fù)大家的。感謝各位對腳本之家網(wǎng)站的支持!
相關(guān)文章
DLL(Dynamic Linkable Library) 詳解說明
DLL文件(Dynamic Linkable Library 即動態(tài)鏈接庫文件),是一種不能單獨(dú)運(yùn)行的文件,它允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源2008-12-12Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程
下面小編就為大家分享一篇Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程,具有很好的參考價(jià)值,一起跟隨小編過來看看吧,希望對大家有所幫助2017-11-11uniApp微信小程序使用騰訊地圖定位功能及getLocation需要在app.json中聲明permission字段問
這篇文章主要介紹了uniApp微信小程序使用騰訊地圖定位功能及getLocation需要在app.json中聲明permission字段問題解決,需要的朋友可以參考下2022-12-12詳解為什么現(xiàn)代系統(tǒng)需要一個(gè)新的編程模型
如今高要求的分布式系統(tǒng)的建造者遇到了不能完全由傳統(tǒng)的面向?qū)ο缶幊?OOP)模型解決的挑戰(zhàn),但這可以從Actor模型中獲益。2021-05-05