基于 java EE .Java权限后台管理系统
- 格式:doc
- 大小:6.85 MB
- 文档页数:17
《Java EE项目开发实训》
---实训报告
课题名称: Java权限后台管理系统
学 期: 2018-2019年第一学期
项目组成员:
指导教师:
成 绩:
日 期: 2020年9月3日 Java EE项目开发实训
- 1 - 一、项目内容
JAVA权限管理系统的核心面向对象设计模式模型,以及权限访问、权限控制和权限存储机制等关键技术。我们采用了SSM框架来实现MVC的设计模式,后台运用了Spring MVC+Mybaits+Shiro,前台运用的是HTML(jsp)+AJAX,开发工具我们用的则是Eclipse,JAVA环境用的则是JDK1.7,服务器是tomcat7。
功能方面我们采用了Ajax + Js分页,表格使用Ly Grid分页插件,表格也有排序功能,弹窗我们则是采用了Lay UI的插件,我们对此项目还加入了druid技术,对SQL语句的监控,自定义注解导出excel,我们也使用了Ehcache缓存机制,还新增了Ehcache分页实现,还有SOLserver2008分页实现,异常则是统一处理,权限机制采用的是Shiro权限机制。
系统将包括系统基础管理、系统监控管理、登录信息管理、操作日志管理。
1.系统基础管理又包括:用户管理、角色管理、菜单管理。
2.系统监控管理包括:告警列表、实时监控。
3.登录信息管理包括:用户登录记录。
4.操作日志管理包括:日志查询。
我们将封装好BaseMapper持久层统一调用,对于基本的增,删,改,查不需要写任何的SQL语句,直接调用新增告警邮件触发功能,我们还做了集成监控功能,随时监控系统内存,CPU,磁盘的最新变化,让用户随时了解服务状况。
二、需求分析
用户权限管理系统一直以来都是应用系统不可缺少的一个部分,每个员工,各个职位都有着自己的工作和责任,淡然也有着自己的工作权限范围。若每个应用系统单独对系统的权限进行设计,来满足不同系统用户的需求,将会浪费很多时间,所以来设计一个统一用户及权限管理系统是非常有意义的。本系统旨在对应用系统的所有用户信息进行管理,为不同应用系统地用户分配属性和权限,并为应用系统提供接口以便其进行调用。
在应用系统中,用户的安全认证、权限管理模块作为系统的重要组成部分,是一个安全的信息系统中不可或缺的一部分。用户的安全认证主要是用 Java EE项目开发实训
- 2 - 来保证登录者的身份,防止用户密码泄漏。权限管理的基本目标为了防止非法用户进入系统;合法用户对系统资源非法使用。用户的安全认证、权限管理作为现代信息系统中重用性最高模块之一,并且也是重复开发率最高的模块。因此作为一个权限管理系统平台,它应当尽可能的实现与业务的分离方便的集成其他的系统模块,还应当最大化的提供一些公共方法的支持与扩展来防止我们重复的开发。以下我们将在用户安全认证方面采取一定的安全措施保证用户身份的安全;在权限管理系统方面采用功能权限和数据级权限两种方式来更加细粒度的进行权限控制。
首先权限管理系统平台作为一个平台我们将选用主流技术,通过对框架的封装来提供一些常用公共方法。使系统开发过程中更加快捷方便。对权限管理方面我们通过两种权限控制方式,第一种是功能权限控制,功能权限控制是采用了基于角色的访问控制并扩展了资源管理部分,基于角色的访问控制是目前比较成熟、应用比较广泛的统一资源控制方法,其核心内容包括用户、角色和资源三部分。我们设计过程就采用 RBAC参考模型作为设计理论基础,通过在用户和权限之间增加角色的概念,不同角色具有不同的操作集,这些操作又由系统管理员分配给角色,对用户进行角色授权可以实现一个用户拥有一个或多个角色,实现了授权的灵活性。第二种是数据级权限控制,数据级权限控制是指用户对使用的系统的具体数据进行的权限控制,主要包括数据的查询权限、数据的修改权限、数据的删除权限、数据的创建权限、数据的管理员权限,它类似于我们Windows系统中的文件的权限管理。综上所述,我们在通用权限系统实现目标有如下几点:
1.提供一套可以快速开发的系统平台。
2.基于安全认证系统登录入口,一个通用的系统登录页面实现,用户根据自己用户名密码实现对系统登录。登录成功进入系统默认成功页面,失败提示失败信息。
3.功能权限的实现,包括对用户表、角色表、权限表的新增、修改、删除、查询、用户分配角色、角色分配权限的实现;系统登录成功后根据用户角色决定网页访问权限,显示操作菜单或按钮;对地址栏url 进行控制,若为非法的url进行提示无此授权信息。
4.数据分配权限一个功能的实现。主要为不同的用户分配不同的角色,通过给角色设置权限进而使用户获得权限。
三、系统设计 Java EE项目开发实训
- 3 - 3.1功能模块设计
根据系统用例来划分功能模块,实现系统基础管理、系统监控管理、系统信息管理、系统日志管理,包括用户管理、角色管理、菜单管理、告警列表、实时监控、登陆记录、入职查询。Java权限后台管理系统功能模块,如图3-1所示。
图3-1 Java权限后台管理系统功能模块图
3.2数据库E-R图设计
实体:指客观世界存在的可相互区别的事物,用矩形表示,矩形内写明实体名,实体。
属性:指实体某一方面的特征,用椭圆形表示,并用无向边将其与相应的实体连接起来。
联系:指实体之间的相互关系,用菱形框内写明联系名,旁标上联系的类型(1:1,1:n或m:n)。
对于数据库应用开发人员来说,为使现实世界的信息流计算机化,并对计算机化的信息进行各项操作,就是如何利用数据库管理系统、系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。确切的说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并能有效存取数据的数据库。 用户管理 角色管理 菜单管理 告警列表 实时监控 登录记录 日志查询 Java权限后台管理系统
系统基础管理 系统监控管理 系统信息管理 Java EE项目开发实训
- 4 - 一个用户只能有一个角色使用,一个角色可以控制菜单里多个功能。Java权限后台管理系统E-R图,如图3-2所示。
图3-2 Java权限后台管理系统E-R图
超级管理员(账号,密码)用户(状态,用户ID,用户名,账号)管理(权限分配,添加,删除)角色(描述,角色名,角色ID,状态)权限管理(角色管理,警告列表,实时监控,基础管理,用户管理)
3.3数据表
监控cpu使用率、RAM使用率、JVAM使用率等。系统监控警告,如图3-1所示。
表3-1 系统监控警告表(ly_server_info)
id cpuUsage setCpuUsage jvmUsage setJvmUsage ramUsage
5 18 40 49 40 71
6 3 40 50 40 71
7 5 40 50 40 70
8 5 40 52 40 69
9 2 40 53 40 68
10 7 40 54 40 67
11 5 40 55 40 67
用来管理菜单中的角色权限和状态,菜单管理表,如图3-2所示。 n 1 状态 用户ID
用户名
账号 超级管理 账号
密码 登录 用户 1 n
描述
角色ID 状态 角色名 基础管理 用户管理 角色管理 实时监控 警告列表
角色 管理 添加 权限分配
删除
使用 权限管理 m Java EE项目开发实训
- 5 - 表3-2 菜单管理表(ly_resources)
id name parentId type resUrl
1 系统基础管理 0 1 system
2 用户管理 1 2 /user/list.shtml
3 角色管理 1 7 /role/list.shtml
4 菜单管理 1 12 fa-list-alt
5 新增用户 2 3
6 修改用户 2 4
7 删除用户 2 5
8 新增角色 3 8
9 修改角色 3 9
10 删除角色 3 10
11 分配权限 3 11 无
25 登陆信息管理 0 18 fa-calendar
26 用户登录记录 25 1 /userlogin/listUI.shtml
27 操作日志管理 0 0 ly_log
28 日志查询 27 1 /log/list.shtml
29 新增菜单资源 4 2 /resources/addUI.shtml
30 修改菜单资源 4 2 /resources/editUI.shtml
31 删除菜单资源 4 2 /resources/delete.shtml
32 系统监控管理 0 1 monitor
33 实时监控 32 1 /monitor/monitor.shtml
34 分配权限 2 2 /resources/permissions.shtml
35 告警列表 32 1 /monitor/list.shtml
用来管理系统中角色的ID名称和权限的分配,权限表,如图3-3所示。
表3-3 权限表(ly_role)
id state name roleKey description
1 0 管理员 admin 管理员
2 0 普通角色 simple 普通角色
3 0 超级管理员 SUPER 超级管理员
3.4程序流程图