该项目源码地址:https://github.com/lastwhispers/permission 项目在线地址:http://39.105.49.50:8080/permission/login.html 初始用户:
系统管理员:admin/admin
经理:manager/manager
销售主管:salemanager/salemanager
销售员:saler/saler
临时工:casual/casual
基于SSM框架简单的后台管理系统,整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块(用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控)。
使用md5加密,shiro权限校验
(1)ajax异步模糊搜索
(2)新增
(3)修改
点击修改
填写修改的信息
(4)删除
选中一行,即可删除
(5)导出excel
支持excel导出
(6)excel导入
支持excel导入,并更新导入信息。 修改excel已存在的数据,并新增一行。
将修改的excel导入系统
与用户管理类似。
菜单管理对应系统左侧的菜单,不同权限用户看到不同的菜单。
并且支持菜单的添加修改删除,以及菜单详细内容的修改。
通过角色控制用户可以看到的菜单。
在该页面给用户设置角色,可以是多个角色。
刷新页面,新增的角色生效。
使用aop日志,记录用户的操作。刚才的操作日志,都被记录了下来。
集成druid的监控页面。
-
每个用户登陆进去看到的菜单应该取决于他们所拥有的权限,对于不同的用户,他们进入系统后看到的菜单可能是不同的。
-
如果对每个用户都去设置权限,操作起来是非常繁琐的。实际中很多用户的权限是一样的。我们把这多个权限合起来,给它一个名称叫角色(有的系统称为“用户组”)。这样我们通过角色设置权限,即一个角色可以有多个权限(菜单项),一个权限也可以被多个角色同时拥有。在这种情况下,角色和权限之间就是典型的多对多关联
-
每个角色包含了很多权限(菜单),那么用户指定为某种角色,即拥有该角色的权限。实际中一个用户可能同时拥有多种角色,而一个角色又包含了很多个用户。那么用户与角色之间又是典型的多对多关系。
-
一个标准的权限系统包括哪些表呢?刚才我们提到了用户、角色、权限,这就是三张表。用户与角色的关系是多对多,对于多对多关系,我们通常会使用中间表来存储它们的关系。那么对应的角色与权限的关系,也会有中间表。因此,权限系统涉及的表就有5个了。
通过用户对应的角色加载角色对应的菜单。 集成shiro做后端url级别鉴权、方法级别鉴权,甚至方法内的鉴权。由于shiro鉴权每次都要查询数据库,所以使用redis缓存菜单信息。
使用aop环绕通知记录方法的操作。 参考:https://www.jianshu.com/p/59ca84fadbaf
找到resource目录里面有redis和sql文件
第一步:启动redis和mysql 第二步:导入resource/sql/permission.sql文件,不是classpath下面的reset.sql 第三步:导入项目,修改db.properties中的数据库账号密码 第四步:启动maven项目
提前打好war,或者重写Dockerfile命令构建war
# 构建镜像
docker build -t gj/permission .
# 运行
docker run -d -p 8081:8080 gj/permission
提前打好war
# war、dockerfile、docker-compose在同一目录
docker-compose up -d
# 查看镜像
docker-compose ps
# 移除镜像
docker-compose down
弹窗在adminjs/index.js的start()方法,可以修改或者关闭 js/crud.js封装了所有的crud前端的代码