請教下,比如有 用戶表、角色表,用戶角色表。
其中 角色表 中系結了 角色名和可以訪問的 url 子路徑。
那么在 后端那塊,是怎么通過 用戶角色表器中的 url 子路徑 來控制 用戶的訪問權限呢?
這個應該是挺常見的需求= 謝謝。


uj5u.com熱心網友回復:
最好也有推薦書籍,或者代碼包 推薦下,謝謝!
uj5u.com熱心網友回復:
攔截器里做啊uj5u.com熱心網友回復:
一般url放在選單表中,角色關聯選單表,用戶關聯角色表,前端每次都有一個權限驗證的介面,一般回傳布爾型別,url作為引數傳遞,用戶資訊一般用token放在請求頭中,業務中,需要找出改用戶的角色所擁有的選單權限,將引數url和角色擁有的選單集合做對比,再集合中就回傳true,不在說明沒有權限,回傳false,難點就是要遍歷出所有的選單,用遞回可以快速實作uj5u.com熱心網友回復:
用戶-->角色-->權限(每個權限對應一種url路徑,url可以自定義相應的規則 比如 /user/* | /user/add-user.do)使用過濾器或者攔截器,判斷 當前訪問路徑與 當前用戶所用戶的角色中的權限所對應的 url路徑 是否匹配
這種東西一般都用現成的 開源, 比如 shiro
uj5u.com熱心網友回復:
springaopuj5u.com熱心網友回復:
用戶表:保存后臺角色用戶角色表(也叫選單目錄表):保存所有目錄、選單、方法。其中每個選單和方法都是一個路徑
用戶角色表:保存用戶所分配的角色表中的角色
角色攔截器的操作原理:
所有請求都可以通過HttpServletRequest.getRequestURL().toString()拿到請求的路徑uri字串,然后根據用戶角色表 關聯 角色表 查詢出的url串列,判斷這個請求的uri路徑是否存在查詢出的url串列中,若存在,則表示有權限,反之則沒有權限。
所有的三方插件都是這樣做的,比如shiro、spring security
uj5u.com熱心網友回復:
shiro:https://www.guitu18.com/post/2019/07/26/43.html轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61686.html
標籤:Java EE
上一篇:求助資料庫鏈接問題!!!!
