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