iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题
  • 661
分享到

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题

2024-04-02 19:04:59 661人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关SpringBoot+Vue前后端分离后如何使用springSecurity处理权限问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库设计权限数据

这篇文章给大家分享的是有关SpringBoot+Vue后端分离后如何使用springSecurity处理权限问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

数据库设计

权限数据库主要包含了五张表,分别是资源表、角色表、用户表、资源角色表、用户角色表,数据库关系模型如下:

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题 

关于这个表,我说如下几点:

1.hr表是用户表,存放了用户的基本信息。

2.role是角色表,name字段表示角色的英文名称,按照SpringSecurity的规范,将以 ROLE_ 开始,nameZh字段表示角色的中文名称。

3.menu表是一个资源表,该表涉及到的字段有点多,由于我的前端采用了Vue来做,因此当用户登录成功之后,系统将根据用户的角色动态加载需要的模块,所有模块的信息将保存在menu表中,menu表中的path、component、iconCls、keepAlive、requireAuth等字段都是Vue-Router中需要的字段,也就是说menu中的数据到时候会以JSON的形式返回给前端,再由vue动态更新router,menu中还有一个字段url,表示一个url pattern,即路径匹配规则,假设有一个路径匹配规则为 /admin/** ,那么当用户在客户端发起一个 /admin/user 的请求,将被 /admin/** 拦截到,系统再去查看这个规则对应的角色是哪些,然后再去查看该用户是否具备相应的角色,进而判断该请求是否合法。

下图分别是用户表、角色表以及资源表中的部分数据(数据库脚本可以在文末的项目地址中下载,位置 resources/vhr.sql ):

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题

整体效果

首先,不同的用户在登录成功之后,根据不同的角色,会看到不同的系统菜单,完整菜单如下:

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题 

不同用户登录上来之后,可能看到的会有差异,如下:

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题 

每个用户的角色是由系统管理员进行分配的,系统管理员给用户分配角色的页面如下:

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题 

系统管理员也可以管理不同角色可以操作的资源,页面如下:

SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题 

其他的删除、搜索等一些琐碎的功能我这里就不再一一介绍了。

项目地址

由于商业协议,原本的项目不能共享给各位小伙伴,因此我专门做了一个开源项目,这个项目的功能整体来说比较多,但是考虑到这个系列的文章主要是向大家介绍权限管理模块,因此其他模块都被我暂时阉割掉了,不过小伙伴们可以放心,权限管理模块的代码一行都没有删除,涉及到权限管理的代码和数据都是完整的,可以直接运行的。小伙伴将以管理员的身份登录到后台系统,登录成功之后,依次点击 系统管理->基础信息设置->权限组 ,即可配置不同角色可以操作的资源;然后依次点击 系统管理->操作员管理 ,即可管理每一位操作员的角色。

项目地址: https://GitHub.com/lenve/vhr

快速部署

1.clone项目到本地 git@github.com:lenve/vhr.git

2.数据库脚本放在hrserver项目的resources目录下,在Mysql中执行数据库脚本

3.数据库配置在hrserver项目的resources目录下的application.properties文件中

4.在IntelliJ idea中运行hrserver项目

OK,至此,服务端就启动成功了,此时我们直接在地址栏输入 Http://localhost:8082/index.html 即可访问我们的项目,如果要做二次开发,请继续看第五、六步。

5.进入到vuehr目录中,在命令行依次输入如下命令:

# 安装依赖
npm install
# 在 localhost:8080 启动项目
npm run dev

由于我在vuehr项目中已经配置了端口转发,将数据转发到SpringBoot上,因此项目启动之后,在浏览器中输入 http://localhost:8080 就可以访问我们的前端项目了,所有的请求通过端口转发将数据传到SpringBoot中(注意此时不要关闭SpringBoot项目)。

6.最后可以用WEBStORM工具打开vuehr项目,继续开发,开发完成后,当项目要上线时,依然进入到vuehr目录,然后执行如下命令:

npm run build

该命令执行成功之后,vuehr目录下生成一个dist文件夹,将该文件夹中的两个文件static和index.html拷贝到SpringBoot项目中resources/static/目录下,然后就可以像第4步那样直接访问了。

步骤5中需要大家对nodejs、NPM等有一定的使用经验,不熟悉的小伙伴可以先自行搜索学习下,推荐 Vue官方教程

注意事项

再次强调,这只是一个权限管理功能模块,运行后只有权限管理功能是完整的。小伙伴们在本地部署成功之后,可以修改每一个用户的角色以及每一个角色可以操作的资源,修改成功之后,注销登录,再以被修改的用户身份登录,即可看到菜单变化。

感谢各位的阅读!关于“SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题

本文链接: https://www.lsjlt.com/news/74192.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题
    这篇文章给大家分享的是有关SpringBoot+Vue前后端分离后如何使用SpringSecurity处理权限问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库设计权限数据...
    99+
    2024-04-02
  • SpringSecurity如何实现前后端分离
    这篇文章主要介绍“SpringSecurity如何实现前后端分离”,在日常操作中,相信很多人在SpringSecurity如何实现前后端分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringSecur...
    99+
    2023-07-05
  • Vue+SpringBoot前后端分离中的跨域问题
    在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议、域名、端口号不同等),导致不能正常调用api...
    99+
    2024-04-02
  • vue+springboot前后端分离如何实现单点登录跨域问题
    这篇文章主要介绍vue+springboot前后端分离如何实现单点登录跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:@Configuration public&nb...
    99+
    2024-04-02
  • Java前后端分离之权限管理示例分析
    目录1.前端界面1.1 按钮1.2 对话框+树形控件2.后端操作2.1 controller层2.2 serviceImpl层2.3 结果展示2.4 查对应的权限菜单(使用中间表)2...
    99+
    2024-04-02
  • SpringBoot+mybatis+Vue如何实现前后端分离项目
    这篇文章主要为大家展示了“SpringBoot+mybatis+Vue如何实现前后端分离项目”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot+mybatis+Vue如何实现前后...
    99+
    2023-06-22
  • 基于Spring Security前后端分离的权限控制系统问题
    目录1. 引入maven依赖2. 建表并生成相应的实体类3. 自定义UserDetails4. 自定义各种Handler5. Token处理6. 访问控制7. 配置WebSecuri...
    99+
    2024-04-02
  • springboot解决前后端分离时的跨域问题
    目录一、为什么会跨域? 二、什么是跨域? 三、处理跨域 1、在controller的类上或方法上添加注解 2、在启动类配置全局cors(springboot2.0已经过时)3、注册c...
    99+
    2024-04-02
  • SpringBoot和Vue.js实现的前后端分离的用户权限管理系统
    目录后端实现1. 数据库设计2. 创建 Maven 项目3. 配置数据库4. 创建实体类5. 创建 Repository6. 创建 Service7. 创建 Controller8....
    99+
    2023-05-14
    SpringBoot Vue.js用户权限管理系统 SpringBoot Vue.js前后端分离
  • nodeJS+vue如何构建前后端分离
    这篇文章主要介绍nodeJS+vue如何构建前后端分离,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!准备工作:1.安装nodejs2.安装依赖包express4.x3.安装vue-c...
    99+
    2024-04-02
  • git前后端分离如何用
    本篇内容介绍了“git前后端分离如何用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前后端分离的基本概念前后端分离的基本概念是:前端提供...
    99+
    2023-07-06
  • SpringBoot和Vue.js怎么实现前后端分离的用户权限管理系统
    这篇文章主要介绍“SpringBoot和Vue.js怎么实现前后端分离的用户权限管理系统”,在日常操作中,相信很多人在SpringBoot和Vue.js怎么实现前后端分离的用户权限管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-07-05
  • 如何解决VueJs前后端分离跨域问题
    这篇文章给大家分享的是有关如何解决VueJs前后端分离跨域问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用vue-cli搭建的vue项目可以使用在项目内设置代理(proxy...
    99+
    2024-04-02
  • FastApi+Vue+LayUI如何实现前后端分离
    小编给大家分享一下FastApi+Vue+LayUI如何实现前后端分离,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言在前面的Api开发中,我们使用FastAp...
    99+
    2023-06-25
  • springBoot前后端分离项目中shiro的302跳转问题
    springBoot前后端分离项目shiro的302跳转 项目是使用的springboot ,使用的shiro做的用户鉴权。在前端请求时当用户信息失效,session失效的时候,sh...
    99+
    2024-04-02
  • springboot怎么解决前后端分离时的跨域问题
    这篇文章主要介绍springboot怎么解决前后端分离时的跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!springboot是什么springboot一种全新的编程规范,其设计目的是用来简化新Spring应用...
    99+
    2023-06-14
  • SpringBoot如何实现前后端分离国际化
    这篇“SpringBoot如何实现前后端分离国际化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot如何实现...
    99+
    2023-07-05
  • vue前后端分离如何解决每次请求session都会变的问题
    目录vue前后端分离每次请求session都会变解决方法vue前后端分离session丢失,前端解决方式1、解决前端每次发送的ajax都是形成新的会话2、本地测试时结果发现还是无法成...
    99+
    2022-11-13
    vue前后端分离 vue请求session vue session
  • 如何用php实现前端后台分离
    这篇文章主要讲解了“如何用php实现前端后台分离”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用php实现前端后台分离”吧!构建后台API接口PHP作为一种服务器端脚本语言,相比于Jav...
    99+
    2023-07-05
  • (十七)前后端分离的Echart图表--基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建
    新手做毕设-后端管理系统 任务十六 [VUE权限菜单之动态路由](https://blog.csdn.net/wdyan297/article/details/128759654)任务十七 前...
    99+
    2023-09-09
    spring boot mysql vue.js elementui echarts
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作