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 之类,大概就是下面这个样子。

(目前这些图表放上去也就是唬唬人,并没有数据支撑,看上去挺像回事就行了)
dashboard

二、技术分析

从开发的角度考虑,用户角色权限管理模块的技术要点如下:

  • 用户、角色、权限、组织架构表结构设计
  • 用户身份验证、授权、会话管理,用户信息的加密存储
  • 不同粒度权限的具体实现

讲道理还是挺复杂的,但我们可以利用 shiro 框架极大地简化我们的开发。不得不说,用 Java 做后端还是很省心的,几乎所有的应用场景都有一套成熟的框架。

我会在教程中讲清功能实现的逻辑,大家也可以尝试不使用 shiro 提供的 API 而自己开发相关功能,以提高对更底层的东西的认知。

三、计划安排

有些从几个月前就开始看这个系列的同学应该发现了,我这个人最大的毛病就是文章写的慢,过去我感觉写文章像喝凉水一样随便,结果每次写完一篇文章都精疲力尽头晕眼花,干什么事都不容易啊。

我估摸着不发生意外的话今年能把这部分写完。。。。所以虽然我感觉为这部分新开一个系列会有更多流量,但还是默默地编入第十一篇,老被催更怪不好意思的。

开发倒是省力一些,我尽量早点把代码撸完哈。图灵保佑我最近不要老加班。

查看系列文章目录:
https://learner.blog.csdn.net/article/details/88925013

上一篇:Vue + Spring Boot 项目实战(十):图片上传与项目的打包部署

下一篇:Vue + Spring Boot 项目实战(十二):访问控制及其实现思路

<p> <img src="https://img-bss.csdn.net/201909231423115500.png" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/201909231423337403.png" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/201909231423434581.png" alt="" /> </p> <p> <img src="https://img-bss.csdn.net/201909231424065321.png" alt="" /><img src="https://img-bss.csdn.net/201909231424244483.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <div style="color:#444444;"> 适用人群 <p style="color:#666666;"> Java开发人员,Vue开发人员,前后端分离开发人员,权限管理和配置开发人员 </p> </div> <div style="color:#444444;"> 课程概述 <div style="color:#666666;"> 【讲师介绍】<br />       现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。<br />      Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年 <br /> 技术选型<br /> 开发环境:Eclipse/Idea ,JDK 1.8以上 <br /> 后端技术<br /> 核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):    <br /> 持久层框架:MyBatis 3.x + Mybatis-plus 3.x<br /> 日志管理:SLF4J 1.7 + Log4j2 2.7<br /> 工具类:Apache Commons、Jackson 、fastjson、Gson<br /> 权限验证<br /> 前端技术  <br /> Vue  <br /> Vue-cli<br /> ElementUI ---https://element.eleme.io/<br /> JSX (JavaScript Xml)<br /> 前台的权限验证和路由设置<br /> 开发模式  <br />      前后端分离的开发<br /> 数据库 <br />       Mysql5<br /> IDE<br />     Intellij Idea<br /> 【课程收益】<br /> 学完课程能独立完成springboot2+vue+elementUI的整合项目开发(前后端分离) <br /> 学完课程能Shiro权限控制,按钮级别的权限控制 <br /> 学完课程能独立后端开发和独立前端开发Vue <br /> 学完课程能快速的掌握目前互联网用的前沿的框架和技术实战 </div> </div>
相关推荐
<div style="color:#444444;"> 适用人群 <p style="color:#666666;"> 所有的IT从业者,尤其适合快速掌握新技术,快速增长工作经验人群,对教育公平,教育公益,教育爱心公益人士 </p> </div> <p> </p> 课程概述 <p> 该互联网实战项目是基于 Spring Boot 2+ SpringSecurity5+Element UI+Vue Admin Template+蚂蚁可视化AntV 等技术栈开发的项目,采用分布式,多模块,前后端分离开发。包括图形展示、权限管理用户管理等功能。<br /> 【后端技术】<br /> 技术 说明<br /> Spring Boot2 MVC框架 开发的一站式解决方案<br /> Spring Security5  认证和授权框架<br /> MyBatisPlus3.3.1  基于 MyBatis 框架的快速研发框架<br /> MyBatisCode工具 生成 MyBatis 相关代码<br /> Jackson 提供了处理 JSON 数据的工具<br /> Lombok 简化对象封装工具 <br /> Druid   数据库连接池 <br /> 【前端技术】<br /> Vue        互联网最火的前端框架<br /> Vue Router 路由框架<br /> Vuex 全局状态管理框架<br /> Axios 前端 HTTP 框架<br /> Element UI 前端 UI 框架<br /> Vue Element Admin 前端模板<br /> Antv  蚂蚁金服可视化技术,阿里巴巴可视化技术,天猫,淘宝,支付宝,花呗均使用AntV<br /> 【开发工具】<br /> IntelliJ IDEA 开发 IDE<br /> SQLyog 数据库连接客户端<br /> Postman HTTP 请求工具<br /> 【开发环境】<br /> 工具 版本<br /> JDK 1.8 </p> <p> MySQL 5.7 </p> <p> <img src="https://img-bss.csdn.net/202004100922276928.png" alt="" /><img src="https://img-bss.csdn.net/202004100922434479.png" alt="" /><img src="https://img-bss.csdn.net/202004100922566924.png" alt="" /><img src="https://img-bss.csdn.net/202004100923062693.png" alt="" /></p> <p> <br /></p> <p> <br /></p>
<div style="color:#444444;"> 适用人群 <p style="color:#666666;"> Java开发人员,Vue开发人员,前后端分离开发人员,权限管理和配置开发人员 </p> </div> <div style="color:#444444;"> 课程概述 <div style="color:#666666;"> 【讲师介绍】<br /> 讲师职称:<br />               现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。<br />             Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年;擅长于JAVA,人工智能AI应用,Xmind等等,曾服役于国内某上市培训机构数年,独特的培训思路,培训体系,培训方式,实践的职场技能,职场现状,职场晋升等让你快速适应企业职场的所需。 <br /> 【课程介绍】<br /> 技术选型<br /> 开发环境:Eclipse/Idea ,JDK 1.8以上 <br /> 后端技术<br /> 核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):    <br /> 持久层框架:MyBatis 3.x + Mybatis-plus 3.x<br /> 日志管理:SLF4J 1.7 + Log4j2 2.7<br /> 工具类:Apache Commons、Jackson 、fastjson、Gson<br /> 权限验证<br /> 前端技术  <br /> Vue  <br /> Vue-cli<br /> ElementUI ---https://element.eleme.io/<br /> JSX (JavaScript Xml)<br /> 前台的权限验证和路由设置<br /> 开发模式  <br />      前后端分离的开发<br /> 数据库 <br />       Mysql5<br /> IDE<br />     Intellij Idea </div> </div>
<div> 适用人群 <p> Java开发人员,Vue开发人员,前后端分离开发人员,权限管理和配置开发人员 </p> </div> <div> 课程概述 <div style="color:#666666;"> 【讲师介绍】<br /> 讲师职称:<br />               现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。<br />             Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年;擅长于JAVA,人工智能AI应用,Xmind等等,曾服役于国内某上市培训机构数年,独特的培训思路,培训体系,培训方式,实践的职场技能,职场现状,职场晋升等让你快速适应企业职场的所需。 <br /> 【课程介绍】<br /> 技术选型<br /> 开发环境:Eclipse/Idea ,JDK 1.8以上 <br /> 后端技术<br /> 核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):    <br /> 持久层框架:MyBatis 3.x + Mybatis-plus 3.x<br /> 日志管理:SLF4J 1.7 + Log4j2 2.7<br /> 工具类:Apache Commons、Jackson 、fastjson、Gson<br /> 权限验证<br /> 前端技术  <br /> Vue  <br /> Vue-cli<br /> ElementUI ---https://element.eleme.io/<br /> JSX (JavaScript Xml)<br /> 前台的权限验证和路由设置<br /> 开发模式  <br />      前后端分离的开发<br /> 数据库 <br />       Mysql5<br /> IDE<br />     Intellij Idea </div> </div>
<p> <span style="font-size:16px;"><br /> </span> </p> <p> <span style="font-size:16px;"><strong>课程简介:<br /> </strong>本课程主要是跟各位小伙伴分享、介绍并实战两大核心的用户身份认证(接口鉴权)模式,即</span><span style="font-size:16px;">基于</span><span style="font-size:16px;">Token</span><span style="font-size:16px;">的认证模式</span><span style="font-size:16px;"> 以及 </span><span style="font-size:16px;">基于</span><span style="font-size:16px;">Session</span><span style="font-size:16px;">的认证模式</span><span style="font-size:16px;">,其中</span><span></span> </p> <p> <span style="font-size:16px;">(1)   </span><span style="font-size:16px;">基于</span><span style="font-size:16px;">Token</span><span style="font-size:16px;">的认证模式</span><span style="font-size:16px;"> 则主要介绍了三种核心、主流的认证模式,即基于</span><span style="font-size:16px;">Token+</span><span style="font-size:16px;">数据库、基于</span><span style="font-size:16px;">Token+</span><span style="font-size:16px;">缓存中间件</span><span style="font-size:16px;">Redis</span><span style="font-size:16px;">、基于</span><span style="font-size:16px;">Token+JWT</span><span style="font-size:16px;">的认证模式。</span><span></span> </p> <p> <span style="font-size:16px;">(2)   </span><span style="font-size:16px;">基于</span><span style="font-size:16px;">Session</span><span style="font-size:16px;">的认证模式 </span><span style="font-size:16px;">也主要介绍了三种核心、主流的认证模式,即基于原生</span><span style="font-size:16px;">Spring Session</span><span style="font-size:16px;">以及</span><span style="font-size:16px;">Session</span><span style="font-size:16px;">共享的认证模式、基于</span><span style="font-size:16px;">Shiro Session</span><span style="font-size:16px;">的认证模式、基于</span><span style="font-size:16px;">Shiro + Redis </span><span style="font-size:16px;">的</span><span style="font-size:16px;">Session</span><span style="font-size:16px;">共享认证模式</span><span></span> </p> <p> <span style="font-size:16px;">即课程的整体介绍如下图所示:</span> </p> <p> <span style="font-size:16px;"><img src="https://img-bss.csdn.net/201909120730297517.png" alt="" /><br /> </span> </p> <p> <span style="font-size:16px;"> </span> </p> <p> 核心技术栈列表: </p> 值得介绍的是,本课程在技术栈层面涵盖了“用户身份认证”、“接口鉴权”等业务场景 常用的大部分技术,包括<span>Spring Boot2.x</span>、<span>Spring MVC</span>、<span>Mybatis</span>、加密解密算法<span>AES</span>、雪花算法<span>Snowflake</span>、统一验参工具<span>ValidatorUtil</span>、<span>JWT</span>(<span>Json Web Token</span>)、缓存中间件<span>Redis</span>、<span>Shiro(</span>身份认证与会话等等<span>)</span>、过滤器<span>Filter</span>、拦截器<span>Interceptor</span>、热部署插件<span>Devtools</span>、等等,如下图所示<br /> <p> <span style="font-size:16px;"><img src="https://img-bss.csdn.net/201909120732073201.png" alt="" /><br /> </span> </p> <p> <span style="font-size:16px;"> </span> </p> <p> <br /> </p> <p> 值得一提的是,本课程所介绍的核心重点在于“仅仅围绕基于<span>Token</span>的认证模式”进行展开讲解与实战,如下图所示为<span>Debug</span>亲自罗列、归纳出来的几大核心要点(面试官就经常喜欢这样面): </p> <img src="https://img-bss.csdn.net/201909120732381227.png" alt="" /><br /> <p> <span style="font-size:16px;"><br /> </span> </p> <p> <span style="font-size:16px;"> </span> </p> <p> 如下图所示为 基于<span>Token</span>认证模式 总体上的时序图:<span></span> </p> <img src="https://img-bss.csdn.net/201909120733009772.png" alt="" /><br /> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值