一、技术栈
前端: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