Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计
第二部分目录
* 总目录
Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计
Vue + Spring Boot 项目实战(十二):访问控制及其实现思路
Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登录认证
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
Vue + Spring Boot 项目实战(十五):动态加载后台菜单
Vue + Spring Boot 项目实战(十六):功能级访问控制的实现
Vue + Spring Boot 项目实战(十七):后台角色、权限与菜单分配
Vue + Spring Boot 项目实战(十八):博客功能开发
前言
期盼已久的中秋假期在加班中进入了尾声,昨天一路狂奔追赶火车的疲惫还未散去,早晨又在施工的轰鸣中惊醒,虽然还有许多工作需要做,但是我决定给自己放一天假,去它喵的福报。
今天是个有特殊意义的日子,因为“白卷”项目迎来了新生!进化后的它将包含面向普通用户的前台和面向管理员的后台,从此站生更加完整。
之所以选择今天开始,我想最大的原因是因为今天太无聊了。。。决定不工作后闲得肚子疼(真疼),只能给自己找点事情干,另一个系列的文章又没啥灵感,还是先挑个软柿子捏吧。
这一段文章的阅读量涨了不少,分析了一下,应该是有不少同学要做课程设计之类,呃,也算是为社会做出了点贡献???
接下来的内容就默认大家有一定基础了,不会再事无巨细地列出步骤。GitHub 上的源码会同步更新。
一、模块设计
用户角色权限管理是各类后台管理系统的重要组成部分,由于涉及多种概念与技术,实现起来稍微有一些难度,因此单独拎出来作为项目迭代的一个阶段,预计要用 5~7 篇来讲。其实搞定了这个部分,基本上就可以独立完成各种功能开发了,再往后走就是并发集群分布式这些玩意儿了,大家加油,坚持坚持翻过这座大山,后面也就剩个几十座了。。。
注意在实际生产环境中最好把前后台功能分成不同的工程开发,并分别部署,后台一般只能通过内网访问,网站的管理功能暴露出去还是很危险的,仅靠一道密码保护可太单薄了。
该模块的功能可以做如下拆解:
下面具体说一下。
1.用户管理
- 用户信息: 显示用户的基本信息(昵称、联系方式、角色、部门等)
- 组织架构: 显示、配置(增删改)组织架构,一般为树结构
- 用户操作: 为用户分配角色(多对多)、组织架构(多对多),删除用户
- 用户黑白名单: 对特殊用户进行特别控制
2.角色管理
- 角色信息: 显示角色的基本信息(名称、权限等)
- 角色操作: 根据需要增删角色、为角色分配权限(多对多,按不同粒度分配,并实现权限的互斥性检验)
3.权限管理
权限一般有如下三种粒度:
- 菜单权限: 访问某一菜单(页面、路由)的权限
- 操作/功能权限: 进行某一操作或使用某一功能的权限(如删除用户的权限)
- 数据权限: 访问某种数据(表、字段)的权限,或对可操作数据量的控制
对权限的管理主要是根据需要增删权限内容,也就是维护三个权限列表(对应不同粒度),这个不难,难点在于怎么让这些个权限生效。
4.UI 设计
后台的界面设计上我打算随大流,整体采用纵向导航布局。
除了用户角色权限的管理,还可以把之前的图书内容管理放进去,再上系统配置,dashboard 之类,大概就是下面这个样子。
(目前这些图表放上去也就是唬唬人,并没有数据支撑,看上去挺像回事就行了)
二、技术分析
从开发的角度考虑,用户角色权限管理模块的技术要点如下:
- 用户、角色、权限、组织架构表结构设计
- 用户身份验证、授权、会话管理,用户信息的加密存储
- 不同粒度权限的具体实现
讲道理还是挺复杂的,但我们可以利用 shiro 框架极大地简化我们的开发。不得不说,用 Java 做后端还是很省心的,几乎所有的应用场景都有一套成熟的框架。
我会在教程中讲清功能实现的逻辑,大家也可以尝试不使用 shiro 提供的 API 而自己开发相关功能,以提高对更底层的东西的认知。
三、计划安排
有些从几个月前就开始看这个系列的同学应该发现了,我这个人最大的毛病就是文章写的慢,过去我感觉写文章像喝凉水一样随便,结果每次写完一篇文章都精疲力尽头晕眼花,干什么事都不容易啊。
我估摸着不发生意外的话今年能把这部分写完。。。。所以虽然我感觉为这部分新开一个系列会有更多流量,但还是默默地编入第十一篇,老被催更怪不好意思的。
开发倒是省力一些,我尽量早点把代码撸完哈。图灵保佑我最近不要老加班。
查看系列文章目录:
https://learner.blog.csdn.net/article/details/88925013
上一篇:Vue + Spring Boot 项目实战(十):图片上传与项目的打包部署
下一篇:Vue + Spring Boot 项目实战(十二):访问控制及其实现思路
Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计相关推荐
- Vue + Spring Boot 项目实战:人事管理系统——(2)员工管理页面及方法实现
员工信息管理目录 前言 一.前端页面的编写 1.编写员工管理vue页面 二.后端接口的方法实现 1.编写实体类 2.控制层 3.服务层 4.Dao层 5.xml编写 6.页面实现 总结 前言 项目登录 ...
- Vue + Spring Boot 项目实战(二十一):缓存的应用
重要链接: 「系列文章目录」 「项目源码(GitHub)」 本篇目录 前言 一.缓存:工程思想的产物 二.Web 中的缓存 1.缓存的工作模式 2.缓存的常见问题 三.缓存应用实战 1.Redis 与 ...
- Vue + Spring Boot 项目实战(十七):后台角色、权限与菜单分配
重要链接: 「系列文章目录」 「项目源码(GitHub)」 本篇目录 前言 一.角色.权限分配 1.用户信息表与行数据获取 2.角色分配 3.权限分配 二.菜单分配 下一步 前言 有感于公司旁边的兰州 ...
- Vue + Spring Boot 项目实战(十五):动态加载后台菜单
重要链接: 「系列文章目录」 「项目源码(GitHub)」 本篇目录 前言 一.后端实现 1.表设计 2.pojo 3.菜单查询接口(树结构查询) 二.前端实现 1.后台页面设计 2.数据处理 3.添 ...
- Vue + Spring Boot 项目实战(九):核心功能的前端实现
本篇目录 前言 一.代码部分 1.EditForm.vue(新增) 2.SearchBar.vue(新增) 3.Books.vue(修改) 4.LibraryIndex.vue(修改) 5.SideM ...
- Vue + Spring Boot 项目实战(四):数据库的引入
这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码. 本篇目录 一.引入数据库 1.安装数据库 2.使用 Navicat 创建数据库与表 二.使用数据库验证登录 1.项目相关配置 2.登录控 ...
- Vue + Spring Boot 项目实战(三):前后端结合测试(登录页面开发)
前面我们已经完成了前端项目 DEMO 的构建,这一篇文章主要目的如下: 一.打通前后端之间的联系,为接下来的开发打下基础 二.登录页面的开发(无数据库情况下) 本篇目录 前言:关于开发环境 一.后端项 ...
- Vue + Spring Boot 项目实战(六):前端路由与登录拦截器
本篇目录 前言 一.前端路由 二.使用 History 模式 三.后端登录拦截器 1.LoginController 2.LoginInterceptor 3.WebConfigurer 4.效果检验 ...
- Vue + Spring Boot 项目实战(七):导航栏与图书页面设计
本篇目录 前言 一.导航栏的实现 1.路由配置 2.使用 NavMenu 组件 二.图书管理页面 1.LibraryIndex.vue 2.SideMenu.vue 3.Books.vue 前言 之前 ...
- Vue + Spring Boot 项目实战(五):数据库的引入
文章目录 一.引入数据库 1.安装数据库 2. 安装mysql 3. MySQL客户端 4. .使用 Navicat 创建数据库与表 二.使用数据库验证登录 1.项目相关配置 2.登录控制器 2.1. ...
最新文章
- linux安装rsync在各主机之间同步文件
- Android注册会员系统返回上一步时如何保存信息
- intellij默认maven仓库配置路径+默认New Project 工程路径
- JS中undefined和null的区别,以及出现原因
- PocketSphinx语音识别系统语言模型的训练和声学模型的改进
- Java基础学习总结(184)—— 从 Java 9 到 Java 17 的新特性解读
- python自动化控制_python用于自动化控制编程
- 计算机控制课设串级回路,计算机控制系统课程设计
- 爬虫日记-采集 快代理 免费 代理ip 并 清洗 ip 附源码gitee,可运行
- 深度linux 官网,深度OS
- 联想微型计算机u盘启动,联想ThinkCentre一体机如何设置U盘启动_联想ThinkCentre电脑怎样从USB启动...
- pyecharts js 地图无法显示 Map china not exists the geoJson of the map must be provided
- element ui中的el-input回车键事件
- 【数据集】各类绝缘子、鸟巢及防震锤数据集汇总
- 神经结构搜索资料NAS
- nyoj 1248-海岛争霸 //floyd变形
- 对计算机文化和职业道德的理解,第七章_计算文化与计算机职业道德教育.pptx
- 2019_ICML_Domain Agnostic Learning with Disentangled Representations
- 懒人精灵(一款类似按键精灵的工具)制作和使用C/C++编写的插件
- Kotlin HashMap remove失效 get失效问题