All Projects → Heeexy → Springboot Shiro Vue

Heeexy / Springboot Shiro Vue

Licence: mit
提供一套基于Spring Boot-Shiro-Vue的权限管理思路.前后端都加以控制,做到按钮/接口级别的权限。(当前新版本已移除shiro依赖,简化了配置)

Programming Languages

java
68154 projects - #9 most used programming language
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
PLpgSQL
1095 projects
SCSS
7915 projects
HTML
75241 projects

Projects that are alternatives of or similar to Springboot Shiro Vue

Sureness
A simple and efficient open-source security framework that focus on protection of restful api.
Stars: ✭ 254 (-93.47%)
Mutual labels:  springboot, shiro
permission
前后端分离的后台权限管理系统,基于Spring Boot, Shiro, Vue, Element实现,预览地址http://123.206.82.234/#/login
Stars: ✭ 44 (-98.87%)
Mutual labels:  springboot, shiro
blog-springboot
My blog with springboot framework
Stars: ✭ 14 (-99.64%)
Mutual labels:  springboot, shiro
Liugh Parent
SpringBoot+SpringCloud Oauth2+JWT+MybatisPlus实现Restful快速开发后端脚手架
Stars: ✭ 2,112 (-45.67%)
Mutual labels:  springboot, shiro
Springboot Shiro
🍀 Springboot + shiro权限管理。这或许是流程最详细、代码最干净、配置最简单的shiro上手项目了。
Stars: ✭ 258 (-93.36%)
Mutual labels:  springboot, shiro
Lzhpo Shiro
美观、漂亮,我抽离出来的,拿来即用的简单后台管理系统!
Stars: ✭ 170 (-95.63%)
Mutual labels:  springboot, shiro
learn-java-demo
java学习demo
Stars: ✭ 17 (-99.56%)
Mutual labels:  springboot, shiro
Pdf Books
📚 PDF 书籍库
Stars: ✭ 134 (-96.55%)
Mutual labels:  springboot, shiro
book-ms-interface
⚡ 微图书后端接口工程,主要使用spring-boot2.x、shiro开发,前端采用 vue.js、element-ui
Stars: ✭ 86 (-97.79%)
Mutual labels:  springboot, shiro
SpringbootCRM
SpringbootCRM,后台管理模板,抽空持续完善(Github授权登录,微信测试号扫码登录)...
Stars: ✭ 37 (-99.05%)
Mutual labels:  springboot, shiro
Crown
Based on SpringBoot2, Crown builds a rapidly developed web application scaffolding.
Stars: ✭ 161 (-95.86%)
Mutual labels:  springboot, shiro
Shiro Springboot
shiro 框架的构建以及与 JWT 的整合
Stars: ✭ 334 (-91.41%)
Mutual labels:  springboot, shiro
Ifarm
后台管理系统,前后端分离,后端SpringBoot+Shiro+MyBatis+Redis,前端Vue+ElementUI+Axios
Stars: ✭ 151 (-96.12%)
Mutual labels:  springboot, shiro
Spring Boot Plus
🔥 Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. 🚀
Stars: ✭ 2,198 (-43.45%)
Mutual labels:  springboot, shiro
Skill6 Website Backend
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...
Stars: ✭ 140 (-96.4%)
Mutual labels:  springboot, shiro
RuoYi-fast
🎉 (RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 117 (-96.99%)
Mutual labels:  springboot, shiro
Watchdog Framework Web
🍻 「停止维护」watchdog-framework的Web前端项目,基于Vue+iView-Admin+Vue-Router+Vuex开发
Stars: ✭ 124 (-96.81%)
Mutual labels:  springboot, shiro
Ruoyi Oracle
(RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 134 (-96.55%)
Mutual labels:  springboot, shiro
active4j
Active4j-boot是基于SpingBoot2.0轻量级的java快速开发框架。以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,layui作为前端框架并进行前后端分离的开源框架
Stars: ✭ 32 (-99.18%)
Mutual labels:  springboot, shiro
Sens
基于SpringBoot+MyBatis+Shiro+Redis+ElasticSearch的企业级博客系统
Stars: ✭ 287 (-92.62%)
Mutual labels:  springboot, shiro

Spring Boot-Shiro-Vue

提供一套基于SpringBoot-shiro-vue的权限管理思路.

前后端都加以控制,做到按钮/接口级别的权限

DEMO

测试地址

admin/123456 管理员身份登录,可以新增用户,角色.

角色可以分配权限

控制菜单是否显示,新增/删除按钮是否显示

更新记录

v2.0.0 2021.05.09

  1. 支持一个用户多个角色
  2. 使用token作为登录凭证,不使用session,避免跨域问题
  3. 使用自定义注解+aop 替代shiro的功能,简化了配置,增强了可拓展性

设计思路

核心

每个登录用户拥有各自的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
npm run dev

后端就是常规的shiro配置,前端代码如果看不明白,可以参考前端权限代码说明

分配权限页面效果

分配权限页面

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].