提供一套基于SpringBoot-shiro-vue的权限管理思路.
前后端都加以控制,做到按钮/接口级别的权限
DEMO
测试地址
admin/123456 管理员身份登录,可以新增用户,角色.
角色可以分配权限
控制菜单是否显示,新增/删除按钮是否显示
设计思路
核心
每个登录用户拥有各自的N条权限,比如 文章:查看/编辑/发布/删除
后端
基于 RBAC新解 .
通常我们的权限设计都是 用户--角色--权限 ,其中角色是我们写代码的人没法控制的,它可以有多条权限,每个用户又可以设计为拥有多个角色.因此如果从角色着手进行权限验证,系统都必须根据用户的配置动起来,非常复杂.
所以我们后台设计的关键点就在于: 后台接口只验证权限,不看角色.
角色的作用其实只是用来管理分配权限的,真正的验证只验证权限 ,而不去管你是否是那种角色.体现在代码上就是接口上注解为
@RequiresPermissions("article:add")
而不是
@RequiresRoles(value = {"admin","manager","writer"}, logical = Logical.OR)
前端
采用了vueAdmin-template , ElementUI , 权限设计思路也是参考了vueAdmin的动态路由的设计.
后端负责了接口的安全性,而前端之所以要做权限处理,最主要的目的就是隐藏掉不具有权限的菜单(路由)和按钮.
登录系统后,后端返回此用户的权限信息,比如
"userPermission":{ "menuList":[ "role","user","article"],"roleId":1,"nickname":"超级用户","roleName":"管理员","permissionList":[ "article:list","article:add","user:list",],"userId":10003}
根据menuList判断给此用户生成哪些路由, 根据permissionList判断给用户显示哪些按钮,能请求哪些接口.
数据库
最主要的是要有一张本系统内的全部权限明细表,比如下面这样
如果某用户拥有表格中前五条权限,就可以查出他就拥有article和user两个菜单,至于页面内是否显示(新增)(修改)按钮,就根据他的permissionList来判断.
具体实现
有了思路,就可以根据各自的业务进行实现,本项目在此进行了简单的实现,后端代码在back文件夹,前端代码在vue文件夹.前端启动只需
npm install --registry=https://registry.npm.taobao.org
npm run dev
后端就是常规的shiro配置,前端代码如果看不明白,可以参考前端权限代码说明
分配权限页面效果
提供一套基于SpringBoot-shiro-vue的权限管理思路.相关推荐
- 分享一套基于SpringBoot和Vue的企业级中后台开源项目,代码很规范!
简介 SmartAdmin由河南·洛阳 1024创新实验室团队研发的一套互联网企业级的通用型中后台解决方案!使用最前沿的前后台技术栈SpringBoot和Vue,前后端分离,我们开源一套漂亮的代码和一 ...
- 分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!
点击上方蓝字关注「程序员的技术圈子」 今天圈子哥给大家分享一套很不错的企业级的开源项目,最近一直比较忙,所以一直没有写文章,但也是一直想着给大家分享一些有价值的东西,而项目经验可能对于很多的在校学生来 ...
- 【毕设精选】基于SpringBoot和Vue的相关系统
SpringBoot+Vue相关系统 前言 springboot330付费问答系统的设计与实现含文档附源码 springboot325基于Java的企业OA管理系统的设计与实现含文档附源码 sprin ...
- shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器
一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 c ...
- (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
springboot厨到家服务系统 摘 要 在社会快速发展的影响下,餐饮迅速发展,大大增加了餐饮服务信息管理的数量.多样性.质量等等的要求,使餐饮的管理和运营比过去十年更加困难.依照这一现实为基础, ...
- 基于springboot+vue的戒毒所人员管理系统 毕业设计-附源码251514
Springboot戒毒所人员管理系统 摘要 随着社会各个领域的信息化进程加快,先进的数字和网络技术为公安执法部门提供了高效的沟通手段.在我国公安监管信息化建设作为监管信息化建设的其中一部分,戒毒所人 ...
- 基于Springboot+MybatisPlus+Vue的前后端分离电子商城系统
一.基于Springboot+MybatisPlus+Vue的前后端分离电子商城系统 基于Springboot+MybatisPlus+Vue的前后端分离电子商城系统,主要分为用户端和管理端两个模块. ...
- 基于SpringBoot和Vue的个人博客系统
基于SpringBoot和Vue的个人博客系统 前言 本期项目分享一个漫威主题的炫酷博客系统,基于SpringBoot和Vue开发的前端分离项目.博客系统分为博客前台和博客后台两部分,游客可以访问 ...
- 基于Springboot和VUE的聊天项目,仿PC端微信
项目介绍 仿PC微言聊天室是基于前后端分离,采用SpringBoot+Vue框架开发的网页版聊天室. 使用了Spring Security安全框架进行密码的加密存储和登录登出等逻辑的处理,以WebSo ...
- 基于Springboot+Mybatisplus+Vue的科研项目管理系统
基于Springboot+Mybatisplus+Vue的科研项目管理系统 1.1 项目概述 开发语言:Java8 数据库:Mysql5 前端技术:bootstrap 后端框架:Springboot ...
最新文章
- Recyclerview 添加一个数组
- MySQL面试题 | 附答案解析(十七)
- openlayers map获取全部feature_tf2.0基础-tf.data与tf.feature_column
- opengl开启垂直同步_东风悦达起亚ALL NEW K5正式定名凯酷,预售同步开启
- Hadoop详解(五):HDFS HA 和 Federation
- 全球与中国节能冷却塔销售渠道分布及市场营销状况分析报告2022-2028年版
- [题解]POJ 3683 Priest John's Busiest Day
- vue 动态添加class_前端开发:Vue项目实战-Music
- 如何让context attribute不出现在configuration界面的available fields列表内
- Centos7搭建LAMP+Typecho博客
- 两局域网互联解决方案
- AndroidDeveloper Weekly No.5
- 一次CDN源站负载高的问题排查及解决
- Vue:安装Vue Devtools调试工具简便方法解决Cannot find module webpack-cli,@vue-devtools/build-tools等
- Pytorch下使用多GPU训练模型
- android 模拟器 锁屏,锁屏桌面全模拟 Android 4.0伪装教程
- 乐优商城遇到的坑(三)之Centos6.5下安装nginx出错
- APP性能测试之功耗测试
- SACD ISO提取DSF文件及添加封面
- 基于STM32F103的ACS712电流传感器使用教程