上篇《話說Spring Security權(quán)限管理(源碼)》介紹了Spring Security權(quán)限控制管理的源碼及實(shí)現(xiàn),然而某些情況下,它默認(rèn)的實(shí)現(xiàn)并不能滿足我們項(xiàng)目的實(shí)際需求,有時(shí)候需要做一些自己的實(shí)現(xiàn),本次將圍繞上次的內(nèi)容進(jìn)行一次項(xiàng)目實(shí)戰(zhàn)。
實(shí)戰(zhàn)背景
背景描述
項(xiàng)目中需要做細(xì)粒的權(quán)限控制,細(xì)微至url + httpmethod (滿足restful,例如: https://.../xxx/users/1, 某些角色只能查看(HTTP GET), 而無權(quán)進(jìn)行增改刪(POST, PUT, DELETE))。
表設(shè)計(jì)
為避嫌,只列出要用到的關(guān)鍵字段,其余敬請自行腦補(bǔ)。
admin_user 管理員用戶表, 關(guān)鍵字段( id, role_id )。
t_role 角色表, 關(guān)鍵字段( id, privilege_id )。
t_privilege 權(quán)限表, 關(guān)鍵字段( id, url, method )
三個(gè)表的關(guān)聯(lián)關(guān)系就不用多說了吧,看字段一眼就能看出。