背景:
最近學(xué)習(xí)公司兩個(gè)項(xiàng)目的代碼禾进,對(duì)權(quán)限相關(guān)的處理做一個(gè)總結(jié)!
1廉涕、基本思路和原理
(1)利用java的攔截器原理泻云,在用戶請(qǐng)求接口是進(jìn)行攔截。
(2)我們可以設(shè)計(jì)成token或者session從這里取到用戶想相關(guān)信息(權(quán)限組(角色)信息)狐蜕。
(3)將所有需要驗(yàn)證權(quán)限的功能弄一個(gè)權(quán)限緩存池宠纯,將所有權(quán)限緩存起來。
(4)從token或session中取出該用戶的權(quán)限組與訪問的接口對(duì)比层释,相同則說明有權(quán)限婆瓜。
2、設(shè)計(jì)思路
數(shù)據(jù)庫(kù):權(quán)限表(角色表) :存放各種角色(權(quán)限組)以及它包含的功能
用戶表: 擁有一個(gè)權(quán)限(角色)
java后臺(tái):?jiǎn)?dòng)的時(shí)候可以通過掃描所有的接口將接口path緩存到權(quán)限池內(nèi)(用于添加權(quán)限設(shè)置使用)。
用戶訪問接口的時(shí)候通過攔截器取到接口的path廉白,取到用戶的權(quán)限組path
用戶權(quán)限組path內(nèi)含有接口訪問的path即權(quán)限通過个初。
添加權(quán)限組的時(shí)候通過映射權(quán)限池內(nèi)的權(quán)限path,組合成權(quán)限path存入權(quán)限表內(nèi)