目录

基本信息

部分功能的实现

认证和授权

总体功能介绍


基本信息

演示地址:Spotlight Automobile Ltd. APS

登录账号:123456   登录密码:123456

仓库地址:

后端:通用权限管理系统(back): 通用权限管理系统后台--重庆工程学院陈文豪

前端:陈文豪/通用权限管理系统(front)

技术栈:

SpringBoot、vue、ant-design、MySQL、Mybatis-Plus、Redis。

部分系统功能的实现

多表查询的简化

本系统提供了对多表查询的简化功能,可以节省后续开发的时间。简化思路就是自定义两个自定义注解:QueryDict(启用简化多表查询的标识)和Dict(关联表的信息),然后利用Spring AOP,以使用了QueryDict注解的Controller(或者service)为切点,利用Java反射去获取使用了Dict注解的属性以及Dict注解里的关联表信息(一般为表名,关联的字段,需要查询的字段),然后根据获取到的信息去数据库查,最后通过直接更改切点方法的返回值的方式来将查询结果合理地返回给前端(这里使用的fastjson提供的JSONObject类)。

这样的方式并不需要在实体类上为关联表定义相应的属性,也不需要为多表查询写多余的sql,可以简化很多开发时间。

但是,这样的方式有一个很明显的缺点,就是在列表查询时,如果一次需要查询10条数据,每条数据有3个字段需要用到这个方法进行多表查询,那么系统就会进行30次数据库查询才能完成这个操作,数据库负担将会非常大。当然,这里可以使用缓存来解决这一问题,不过由于笔者最近的空余时间太少了,而使用缓存又必须考虑缓存穿透、击穿、雪崩的问题,工作量还是有一点大,所以目前还没有完成对这个功能的优化,完成后会更新。

认证和授权

本系统的认证和授权使用的是shiro+jwt+redis,不过设计上面还有缺陷,本系统在用户第一次登录时将返回一个token给前端,后续用户的每个请求都将携带这个token,后端会判断是否是有效的token,如果有效则放行,无效则返回错误信息。本系统在设计时,将第一次生成的token同时作为了缓存的key和value进行了保存,缓存过期时间是token过期的两倍,token过期时缓存还没有过期,就刷新token,将新的token作为作为value值重新存放进缓存,key值不变,然后前端就可以一直使用第一次的token一直请求后端,这样虽然减少了前端刷新token的次数,但是也给系统带来了安全隐患,如果有人获取到了一个有效的token,那么他只需要每个一段时间发送一次请求就可以保证这个token一直是有效的,他将可以一直跳过前端不停给后端发送请求。这个问题后续将会作调整。

总体功能介绍

功能界面:

用户管理:

菜单管理:

角色管理:

菜单授权,选择菜单点击确定,该角色就将拥有勾选的菜单,没有勾选的菜单不会再显示,这里前端是用路由守卫去做的,设置后重新请求一个路由就将看到效果。

操作权限,同样选择相应权限后点击确定,这里是用的vue的自定义指令实现的,自定义一个v-has,角色必须拥有v-has声明的权限才会渲染元素,否则不会渲染。

通用权限管理系统项目简单介绍相关推荐

  1. 通用权限管理系统组件 (GPM - General Permissions Manager) 在跨国直销企业电子商务项目中的成功应用...

    我所在是一家跨国家直销公司,在亚太某国家电子商务项目中,2011年底系统全面应用了通用权限数据访问层类库及工具类库,支持了每月万级会员加入.千万级订单:同时,在我们的项目开发过程中,完全由外包工程师来 ...

  2. 通用权限管理系统组件 (GPM - General Permissions Manager) 不改数据库、甚至不写代码就集成铜墙铁壁权限管理组件...

    为什么80%的码农都做不了架构师?>>>    越成熟的东西,越牛X的东西,越简单才对,简单才是硬道理,苹果的手机只有少数几个按键,苹果Ipad也很少的按钮,甚至连苹果的笔记本键盘都 ...

  3. 通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多系统的统一登录(数据库源码级)附源码...

    眼前有20万行以上的代码时很多人都会眼花缭乱,不知道从哪里开始下手了,甚至不会去研究几下就直接放弃了.其实大多时候没有想象的那么复杂,代码里一大部分都是有重复的,有本质上差别的部分还是很少的. 春节期 ...

  4. 写在通用权限管理系统销售200套,从刚开始求人家用到人家主动索取,写一下亲身感受...

    把软件源码卖给专业开发人员的确有点儿难度,这个比把软件产品卖给其他非专业人事更难一些:由于接近10来年里一直在做一线软件开发工作,公司的其他业务系统都有版权.著作权,也不允许乱拿出来展示的,更不可能拿 ...

  5. Java通用权限管理系统第一天

    品达通用权限系统 1. 项目概述 1.1 项目介绍 对于企业中的项目绝大多数都需要进行用户权限管理.认证.鉴权.加密.解密.XSS防跨站攻击等.这些功能整体实现思路基本一致,但是大部分项目都需要实现一 ...

  6. 基于MVC4+EF5+EasyUI技术实现通用权限管理系统(EpPlus、HignCharts、Reportviewer报表)...

    基于MVC4+EF5+EasyUI技术实现通用权限管理系统(EpPlus.HignCharts.Reportviewer报表) 适合人群:高级 课时数量:150课时 用到技术:MVC.EF.T4.Lo ...

  7. 零基础到CS开发高手通用权限管理系统全程实录

    零基础到CS开发高手通用权限管理系统全程实录(Devexpress.FastReport.NET.WebService.智能客户端) 课程讲师:闲筝 课程分类:.NET框架 适合人群:中级 课时数量: ...

  8. 通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...

    为什么80%的码农都做不了架构师?>>>    权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱 Ψ吉日嘎拉 采用通用权限管理系统,这些烦恼就 ...

  9. 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统

    一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...

  10. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码

    通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的 ...

最新文章

  1. cannot import name 'ImageRecordInt8Iter'
  2. Spring 4 官方文档学习(十一)Web MVC 框架之异常处理
  3. qt build错误
  4. python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...
  5. 【前端】递归之引起堆栈溢出解决方案
  6. H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
  7. Win11系统自动暂停更新后想继续怎么办 Win11系统重新启动更新教程
  8. linunx 定位最耗资源的进程
  9. Enterprise Library访问Access数据库
  10. mysql doen s exist_Mysql中大小写敏感问题导致的MySql Error 1146 Tabel doen’t exist错误
  11. mui实现分享功能_继MIUI之后,华为EMUI更新,深度实现万物互联
  12. fancybox 无效 失效 直接打开页面, ajax 之后 fancybox对更新的数据无效,Jquery失效 无效...
  13. Fatal error: Cannot redeclare db_connect() 错误
  14. 触动精灵手游脚本开发框架FreeGame源码
  15. 2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案
  16. web前后端分离系统之间的单点登录
  17. 如何发送gmail邮件_如何从R和Gmail发送电子邮件
  18. 不要成为职场中的三种人
  19. Python环境下用中文做了个《王者荣耀》AI脚本,附视频
  20. Firefox OS开发指南

热门文章

  1. 基于Java实现大学生求职招聘信息网站系统
  2. related、relative和relevant表示相关意思时的区别
  3. 数据库原理与应用教程(何玉洁 第四版)第七章课后题
  4. Cesium+百度街景浏览
  5. 【区块链基础】2——BTC区块结构
  6. 将uniapp打包成安卓APP
  7. Java基础系列-《流程控制--循环结构》
  8. 易基因 | 项目文章 | oxBS-seq揭示了宫颈癌发生过程中的表观遗传特征变化
  9. note4-WEB源码拓展
  10. 跳棋java课程设计,C语言课程设计(论文)跳棋.doc