基于SSM框架的后台权限管理系统

该项目源码地址:https://github.com/lastwhispers/permission
项目在线地址:http://39.105.49.50:8080/permission/login.html
初始用户:
系统管理员:admin/admin
经理:manager/manager
销售主管:salemanager/salemanager
销售员:saler/saler
临时工:casual/casual

1. 简介

基于SSM框架简单的后台管理系统,整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块(用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控)。

2. 项目演示

2.1 登录

使用md5加密,shiro权限校验

登录页面

2.2 用户管理

(1)ajax异步模糊搜索

ajax异步模糊搜索
模糊搜索

(2)新增

新增
新增成功

(3)修改

点击修改

修改

填写修改的信息

修改成功

(4)删除

选中一行,即可删除

删除
删除成功

(5)导出excel

支持excel导出

excel导出
excel

(6)excel导入

支持excel导入,并更新导入信息。
修改excel已存在的数据,并新增一行。

修改excel

将修改的excel导入系统

导入excel
上传成功
excel导入

2.3 角色管理

与用户管理类似。

角色管理

2.4 菜单管理

菜单管理对应系统左侧的菜单,不同权限用户看到不同的菜单。

菜单管理

并且支持菜单的添加修改删除,以及菜单详细内容的修改。

添加修改删除
菜单详细内容

2.5 角色权限管理

通过角色控制用户可以看到的菜单。

角色权限管理

2.6 用户角色管理

在该页面给用户设置角色,可以是多个角色。

初始
新增角色
保存成功

刷新页面,新增的角色生效。

image.png

2.7 日志管理

使用aop日志,记录用户的操作。刚才的操作日志,都被记录了下来。

日志管理

2.8 数据库监控

集成druid的监控页面。

数据库监控

3. 系统权限设计思路

  1. 每个用户登陆进去看到的菜单应该取决于他们所拥有的权限,对于不同的用户,他们进入系统后看到的菜单可能是不同的。

  2. 如果对每个用户都去设置权限,操作起来是非常繁琐的。实际中很多用户的权限是一样的。我们把这多个权限合起来,给它一个名称叫角色(有的系统称为“用户组”)。这样我们通过角色设置权限,即一个角色可以有多个权限(菜单项),一个权限也可以被多个角色同时拥有。在这种情况下,角色和权限之间就是典型的多对多关联

  3. 每个角色包含了很多权限(菜单),那么用户指定为某种角色,即拥有该角色的权限。实际中一个用户可能同时拥有多种角色,而一个角色又包含了很多个用户。那么用户与角色之间又是典型的多对多关系。

  4. 一个标准的权限系统包括哪些表呢?刚才我们提到了用户、角色、权限,这就是三张表。用户与角色的关系是多对多,对于多对多关系,我们通常会使用中间表来存储它们的关系。那么对应的角色与权限的关系,也会有中间表。因此,权限系统涉及的表就有5个了。

系统权限

通过用户对应的角色加载角色对应的菜单。
集成shiro做后端url级别鉴权、方法级别鉴权,甚至方法内的鉴权。由于shiro鉴权每次都要查询数据库,所以使用redis缓存菜单信息。

4. 日志系统设计思路

使用aop环绕通知记录方法的操作。
参考:https://www.jianshu.com/p/59ca84fadbaf

5. 如何运行项目

5.1 本地运行

找到resource目录里面有redis和sql文件

第一步:启动redis和mysql
第二步:导入resource/sql/permission.sql文件,不是classpath下面的reset.sql
第三步:导入项目,修改db.properties中的数据库账号密码
第四步:启动maven项目

5.2 Dockerfile

提前打好war,或者重写Dockerfile命令构建war

# 构建镜像
docker build -t gj/permission .
# 运行
docker run -d -p 8081:8080 gj/permission

5.3 docker-compose

提前打好war

# war、dockerfile、docker-compose在同一目录
docker-compose up -d
# 查看镜像
docker-compose ps
# 移除镜像
docker-compose down

5.4 其他

弹窗在adminjs/index.js的start()方法,可以修改或者关闭
js/crud.js封装了所有的crud前端的代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容