xhuanghun / SSMPermissionPro

SSM权限管理系统

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSMPermissionPro

SSM框架之权限系统项目

简介:基于SSM框架和Shiro安全框架的权限管理系统

Shiro 简介:Apache Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、加密和会话管理。


项目搭建

  • 1.创建Maven-webapp工程
  • 2.添加代码生成器
    • 添加代码生成器配置文件、创建员工表、生成员工mapper
  • 3.SSM框架集成
    • 3.1添加依赖
    • 3.2添加配置文件
    • 3.3配置web.xml

主页搭建

  • 1.EasyUI主页
    • 1.在目录当中引入EasyUI相关JS与css;2.在首页当中引入所需要的js与css;3.编写body所首页框架格式;4.创建首页index.js引入
  • 2.员工列表
    • 1.在tree当中指定跳转的地址; 2.创建页面跳转控制器,接收请求跳转到Employee页面; 3.在Employee页面中引入公共的EasyUI相关js编写数据表格; 4.创建Employee.js引入设置-数据表格; 5.创建部门表; 6.查询部门; 7.列表添加工具栏目; 8.添加对话框弹出; 9.保存; 10.编辑; 11.离职; 12.离职按钮禁用; 13.分页控制; 14.高级查询

添加权限

  • 1.建立角色与权限的表
  • 2.建立角色页面
  • 3.加载权限数据实现点击添加权限
  • 4.添加角色权限
  • 5.角色列表
  • 6.编辑角色权限
  • 7.删除角色权限
  • 8.员工添加角色
  • 9.员工编辑

权限控制

整合Shiro框架

  • 1.登录认证
    • 1.登录拦截,如果没有登录,跳转到登录页面
    • 2.登录认证
  • 2.登录授权
    • 1.在配置文件当中添加Shiro注解扫描
    • 2.在realm中添加授权信息
  • 3.没有权限结果处理
  • 4.权限按钮控制
    • 引入Shiro的标签库,在需要权限控制的地方添加对应的shiro标签
  • 5.密码散列
    • 在保存用户时, 给用户密码进行加密处理
    • 在认证当中添加密码处理
    • 添加凭证匹配器
  • 6.权限缓存
    • 授权查询只使用一次即可, 所以使用缓存,把对应的内容缓存起来,下次再去, 直接从缓存当中进行查询

菜单权限管理

  • 1.菜单页面搭建:创建Menu页面、创建Menu.js
  • 2.创建菜单表、生成Mapper
  • 3.pojo类添加父菜单字段、接收菜单请求,页面处理
  • 4.菜单添加:
    • 获取所有父菜单
    • 保存菜单:监听保存按钮、业务处理
    • 编辑菜单
    • 删除菜单
  • 5.tree数据加载
  • 6.菜单权限
    • 在数据表中, 添加外键, 每一个菜单对应一个权限,通过判断用户有没有该权限来控制菜单的显示隐藏
    • 设置菜单对应权限并取出
    • 获取菜单时, 检查权限

系统日志

Excel导入导出


2020.02.14

完成的任务:系统日志
1.建立日志表和对应mapper
2.创建日志切面
3.添加切面,配置AOP
4.添加拦截器,记录当前请求的操作时间、ip地址
① 创建本地线程变量
② 创建拦截器把当前请求写入到本地线程变量
③ 配置拦截器拦截所有请求
④ 在切面中获取ip
5.拦截器获取当前执行的方法及参数

2020.02.15

完成的任务:
Excel的导入导出
1.使用Apache的poi操作Excel
2.界面搭建:在工具栏加入导入导出按钮
3.下载功能:把datagrid的数据以Excel的文件格式下载下来
(1) 从数据库中取列表数据
(2) 创建Excel 写到Excel中
① 设置表头
② 遍历所有员工写入到每一行
③ 入职日期(Date类型)为空时的处理
(3) 响应给浏览器
4.上传功能:用户需要下载Excel模板,按规范填好数据才能进行上传
(1) 上传界面的搭建
① 下载模板
(未完待续......)

2020.02.16

接02.15
4.上传功能:用户需要下载Excel模板,按规范填好数据才能进行上传
(1) 上传界面的搭建
① 下载模板
② 上传Excel处理
③ 在MVC配置文件中配置文件上传解析器
至此,基于SSM框架和Shiro安全框架的权限管理系统完成。

About

SSM权限管理系统


Languages

Language:CSS 44.0%Language:HTML 23.2%Language:Java 19.1%Language:JavaScript 9.3%Language:TSQL 4.4%