一直想做一个小巧灵活,有着细粒度的权限管理,适用于大部分公司后台管理需求的脚手架。后来看到了 vue-router 对于路由上的灵活性,想到了 shiro 结合 vue-router 来处理权限的问题是比较合适的。shiro 默认是基于 session,而对于一款灵活的后台管理系统来说,需要的自然是无状态的 token 的模式。
后端
改造成无状态的 token 模式
github 上有着一款类似的框架:https://github.com/Heeexy/SpringBoot-Shiro-Vue 它实现了前后端的大部分功能,但是它是基于 session 来处理 shiro 的权限问题的,在本文要介绍的这个开源项目中对它进行了一定的改造,改造成基于 jwt token 的模式。
kotlin 化
kotlin 的函数式编程已经非常流行了,在这个开源项目中采用了部分 kotlin 化,在练手的同时也能使用到其中的一些高级特性。
数据库
数据库部分和 SpringBoot-Shiro-Vue 区别不大,主要是添加了一个组织管理的部分,而对于组织管理后面又可以拓展成庞大的组织树管理,将适用于组织结构比较复杂的公司。
权限管理
权限基于 shiro,在粒度上达到了按钮级别,而且在加载时利用 vue 做了相应的处理,用户看到的就只有自己有权限的部分的内容。
前端
框架
主要基于 github 上的一款现成的前端框架改造而来,它的地址为:https://github.com/PanJiaChen/vue-element-admin 。除了拿来即用外,主要看中了它里面的很多 demo 示例,这对于一个除了前几年做过一些前端 js 开发,在之后的前后端分离多年中一直做后端服务的开发人员来说是十分友好的。
演示效果
组织管理:
用户管理:
权限管理:
另外还带有一个spring-Admin的服务监控如下图:
地址
前端地址
https://github.com/wysstartgo/myblog-admin
后端地址
https://github.com/wysstartgo/myBlog-back
说明
目前是未进行整理的版本,年后会对前后端的项目进行一定地整理和完善,变更后的地址请关注后续的文章! 在这里预祝大家新年快乐!年年有余!