一、技術棧
前端:iview-admin vue
后端:springboot shiro
二、基于角色的權限控制
1、路由權限? 即不同角色的路由訪問控制
2、菜單權限? 即不同角色的菜單列表展示
3、按鈕權限? 即不同角色的按鈕展示
4、接口權限? 即不同角色的接口訪問控制
三、防止安全漏洞
1、雙重認證校驗? ?即登陸信息和token校驗
2、防止水平越權? 即同權限的A和B,A不能操作B的個人信息
當獲取用戶信息時,通過token校驗用戶身份的唯一性
3、防止垂直越權? 即A權限高于B,B不能越權操作A的用戶權限
參考二會進行四個方面的控制
路由權限示例
接口權限示例
四、整體設計思路
1、前端通過vue-router控制路由、菜單、按鈕和權限的基礎數據和展示控制,后端提供角色和路由、菜單、按鈕的配置數據,然后過濾前端維護的基礎數據從而實現路由、菜單、按鈕的權限控制
2、后端通過shiro一方面實現登陸控制,另一方面基于配置數據基礎上實現接口權限控制
3、基于基礎的登陸權限控制功能上,可基于iview-admin自主定制企業管理功能模塊
五、FAQ
1、由于是前后端分離項目,所以應避免跨域問題,否則前端調用后端接口,無法攜帶cookie實現接口權限控制功能
六、源碼參考地址
前端:zwxu/FrontendTemplate
后端:zwxu/BackendTemplate