1、. . . . 基于Struts运维平台用户管理模块的设计与实现Design and Implementation of User Management Module of SOC Based on Struts目 录摘要IABSTRACTII第1章绪论11.1 开发背景与意义11.2 课题的来源与概述11.3 软件开发工具与技术11.3.1 工具21.3.2 技术21.4 具体目标3第2章用户管理模块系统分析42.1 可行性分析42.2 功能需求分析42.3 逻辑模型设计思想52.4 数据流图和用例图设计思想5第3章用户管理模块系统设计63.1 系统设计原则63.2 系统界面设计流程73.2
2、.1 修改密码界面设计73.2.2 用户信息界面设计73.2.3 用户管理界面设计83.2.4 角色管理界面设计103.2.5 权限管理界面设计103.3 数据库表设计11第4章用户管理模块系统实现124.1 数据库表创建124.2 修改密码124.3 用户信息124.4 用户管理134.5 角色管理144.6 权限管理14结论16参考文献1716 / 20摘 要基于安全运维平台的用户管理系统是根据中国人民银行清算中心关于网络安全监控平台和安全分析系统建设的招标书要求,结合与中国人民银行清算中心的需求调查结果java用户角色权限设计,形成NetEye SOC的需求规格说明书,在Struts架构的基础上采用JSP和Or
3、acl9i进行开发的。论文首先介绍了本项目开发的具体背景,然后对用户管理模块使用的相关技术做了简单的介绍,接着对用户管理模块进行系统分析游戏评测,根据用户需求用静态页面进行系统设计,最后简要的介绍了用户管理模块的系统实现。在系统实现中重点介绍了角色、权限和自定义标签的实现。系统采用了MVC设计模式、自定义标签等技术来实现,使系统重用性、扩展性好,技术上使用灵动方便。关键词 SOC,Struts,用户管理,权限,角色ABSTRACTUser management system based on SOC is developed according to the request of the bid bo
4、ok of settlement center of the PeoplesBank of China, concerning the supervision platform of network safety and system construction of safe analysis, the requirement survey result of the settlement center of the PeoplesBank of China and forms the requirement specification of the NetEye SOC.The user m
5、anagement module of SOC platform is developed with JSP and Oracl9i based on struts.Firstly,this paper introduced the background of the project, then a simple presentation of user management module technologies related,and analysis of the user management module,finally,according to user demand for st
6、atic pages systems design,a brief introduction to the User Management Module System. Implementation of the system focuses on the role, powers and custom labels realized.To make the system more reusable,more extensible,more intelligent andconvenient,this system is implemented technically based on MVC
7、 design pattern,custom labels and so on.Keywords SOC, Struts, user management, popedom,role第1章 绪论随着计算机技术的飞速发展,尤其是网络技术的超速发展带动了信息的广泛交流甚至导致了信息爆炸,“信息时代”这一词汇似乎已经被普遍接受。特别是近年来Internet超乎想象的发展,对信息的收集、整理、利用和传播更把世界带入了信息时代的一个更高的层次。因此,无论是对于一个国家还是一个企事业单位,掌握信息技术已变成未来生存和发展的基本要素。1.1 开发背景与意义近年来,中国人民清算中心已经逐渐的走向智能化的网络管
8、理,为了对中国现代化支付系统实现统一的网络管理java用户角色权限设计,充分发挥中央银行作为最终清算者的职能。中国人民清算中心迫切需要一个完善的支付系统网络作为中国现代化支付系统的网络平台,完成支付系统的数据采集和传输功能。基于这个目的NetEye SOC系统应运而生。1.2 课题的来源与概述该项目是为中国人民银行清算中心定制的网络安全监控平台和安全分析系统的合同项目,该系统主要目的是对中国现代化支付系统统一的网络管理,中国现代化支付系统主要提供跨行的支付清算服务,发挥着中央银行作为最终清算者的职能作用。1.3 软件开发工具与技术本节将简单的介绍一下开发工具的选择和所使用的相应技术。1.3.1 工具用户管理模块的开发
9、选用开源的Eclipse和MyEclipse作为开发平台,Eclipse的插件体系结构决定了Eclipse的高度可扩展性,它作为java语言的优秀的集成开发工具。服务器使用Tomcat。一般而言,桌面数据库主要应用于小型的、单机的数据库应用程序。在这里我们用客户/服务器数据库模型的Oracle公司的oracle9i 作为本软件的应用数据库。1.3.2 技术使用了Struts框架,Struts框架是目前比较成熟的框架结构之一。数据库使用是要注意系统在逻辑上应该有层次结构,数据库结构必须规化,必须保证数据的正确性和完整性。必须保证数据的安全性,对故障应有预防能力、保护能力和恢复能力,以与对数据的能
10、力。用户管理模块的实现是用Java技术来实现的,Java作为面向对象编程(OOP)语言具有多方面的吸引力。JavaScript是一种基于对象的脚本语言,是解释执行的。它是一种宽松类型的语言。不必显式定义变量的数据类型,实际上也无法明确地定义数据类型。在大多数情况下,将根据需要自动进行转换。Css 是 Cascading Style Sheet 的缩写。译作层叠样式表单。是用于(增强)控制网页样式并允许将样式信息与网页容分离的一种标记性语言。使用Css可以方便的实现页面的控制。标签是用户管理模块设计的一个难点和亮点,标签可以使系统开发时灵活动用,能大大提高开发效率。自定义标签的使用更加使系统的开
11、发灵活,便利。自定义标签是根据自己的具体需要封装代码,使用起来使显示的页面更加整洁,一次构建可以多次使用。自定义标签也可以重写系统中的标签,可以根据需要灵活的定义使用。在用户管理模块中使用自定义标签,这一点主要体现在了翻页功能的实现上。1.4 具体目标每一个系统都有它的目标,一般来说目标包括若干方面。每一个目标可以分解成若干子目标。子目标比较具体,可随系统分析逐步确定,并用一定的指标来衡量,本系统是围绕着安全风险管理而展开的网络安全监控和分析系统,在用户管理模块中,根据对用户功能进行分析和研究,进行详细的设计和分析完成用户修改密码,用户信息、用户管理,角色管理和权限管理功能。本文着重阐述用户管
12、理模块的实现以与所涉与到的有关相应的技术。第2章 用户管理模块系统分析本章主要介绍了用户管理模块开发的可行性、用户管理模块功能的需求分析,用户管理模块的逻辑模型以与系统中使用到的数据流图和用例图的设计思想。2.1 可行性分析用户管理模块是任何能够长时间运行的应用系统所必须的,只是牵涉到用户管理实现的复杂度的问题。用户管理系统的实现和维护是NetEye SOC系统得重要组成部分。作为一个完整系统开发的一部分,用户管理模块的实现是不可缺少的。从使用者的角度说,缺少了用户管理模块的系统,用户使用起来是很不方便的。从管理者的角度说,系统的管理和维护是系统能够长时间正常运行的重要保障。从技术上来说,技术
13、人员积累了很多的经验和知识,实现用户管理模块是完全有能力的、可行的。2.2 功能需求分析用户管理系统是为了方便用户进行管理,加强系统的维护工作,就本系统模块来说,如果长时间不能进入有效管理状态,会给使用本系统的企事业单位造成不必要的经济损失。不同的系统对于用户管理模块有不同的要求,但是作为一个完整系统的重要组成部分,尤其是NetEye SOC系统的用户管理模块,它应该具有以下的基本功能如表2-1所示:模块功能修改密码对用户密码进行修改,这是用户管理模块的基本功能用户信息根据当前用户,显示出当前登录用户的所有信息,包括角色、权限等。用户管理根据用户的权限大小,可以进行相应的查询,增加,删除,修改
14、和刷新操作。角色管理角色的管理是本模块的重要组成部分,可以根据用户进行相应的操作,详细部分请参阅用户管理模块的详细的系统设计部分。权限管理权限是根据角色相互关联的,权限和角色是两个密不可分的部分,什么样的角色才有什么样的权限。表2-1 NetEye SOC的用户管理模块系统的主要功能需求2.3 逻辑模型设计思想本系统模块的逻辑模型主要以系统数据流图为主要的描述工具,首先使用HTML将业务流程勾画出来向用户演示说明。辅助使用图片和文字进行说明,即是对用户管理模块的详细操作进行任职分析和研究的基础上,从业务的管理功能和管理对象出发,按照用户管理模块的数据流图和用例图来进行勾画系统的全貌。2.4 数
15、据流图和用例图设计思想数据流图是在对系统充分调查研究的基础上,从系统的科学性、管理的合理性、实际运行的可行性的角度出发。将信息处理功能和彼此之间的联系自顶向下、逐层分解、从逻辑上精确的描述系统应该具有的数据加工功能、数据输入、数据输出、数据存储与数据的来源和去向。注:由于数据流图和用例图是在中国人民银行清算总中心项目中用,考虑安全性等因素。此容不对外公开。第3章 用户管理模块系统设计用户管理模块的系统设计是根据向客户展示的静态页面来实现工作的流程化和系统化。系统设计是实现项目和用户需求保持一致的重要步骤。本章主要介绍了系统设计的原则,系统界面设计流程以与系统中数据库表的设计。3.1 系统设计原
16、则1. 可靠性原则充分考虑角色和权限的赋予和管理,考虑数据的安全性和完整性,实现系统的可靠性原则。例如:不恰当的授权会导致系统维护起来更加困难,甚至造成人为的损失。2. 可维护性的原则系统运行以后,维护工作本身是一件长期的工作。因此,本系统设计充分考虑了以后维护工作的需要,设计采用了面向对象、模块化的技术,提高了软件的复用性、界面一致性、代码重用性、尽量降低维护工作的工作量与困难。3. 先进性原则可扩充性和开放性,本系统能够进行产品的更新换代以适应用户的需求,因此系统的设计是完全面向对象的模块化结构,界面清楚,易于管理和扩充。4. 用户界面设计的原则用户界面是系统与用户之间的接口,是用户与计算
17、机信息系统之间传递、交换信息的媒介,也是控制和选择信息输入输出的主要途径。用户界面的设计在管理信息系统的设计中占有非常重要的地位。一般来说,用户界面的设计应该坚持如下原则:1) 界面直观。2) 能够自行引导用户进行系统的操作。3) 操作简单。3.2 系统界面设计流程用户登录的实现在需求中不是用户管理模块必须实现的部分,但是它是和这一部分息息相关的。所以在用户管理模块中还要实现用户登录部分。在项目开始之前首先要进行的是静态页面的评审。结合静态页面,本小节将详细的介绍用户设计的流程,包括用户管理中修改密码、用户信息、用户管理、角色管理、权限管理的界面的设计流程。3.2.1 修改密码界面设计用户点击
18、“修改密码”时,要求在修改密码的主页面将会显示登录时的用户账号。其中原密码、新密码、确认密码都属于必填项不可缺少的。显示容如图3-1所示:图3-1 修改密码3.2.2 用户信息界面设计当用户点击左侧“用户信息”时,要求在右侧显示登录用户的、账号、角色等信息,用户信息显示的是当前登录用户的相应信息。在设计用户信息显示界面时要注意在静态页面中最基本设计原则问题,绝对不能出现脚本错误。用户信息显示界面如图3-2所示:图3-2 当前用户信息的显示3.2.3 用户管理界面设计用户管理的设计中,要求右侧有“查询”,“添加”,“修改”,“删除”,“刷新”五个按钮。在列表中显示账号、全名、描述等用户信息。用户
19、点击“查询”按钮时,要求出现如图3-3所示界面,全为空时查出全部信息。在用户管理主页面中显示出来。图3-3 用户查询用户点击“添加”按钮时,要求在右侧显示基本属性和扩展属性两个TAB页,界面如图3-4所示。在添加用户信息的界面中的基本属性中要求有账号、全名、密码、所属角色等信息。扩展属性中要求有更加详细的用户信息,包括Email等。图3-4 添加用户基本信息界面点击扩展属性后,在扩展属性中要现了用户的额外信息的添加。在用户的扩展属性值中实现用户的信息的维护和储存功能。界面如图3-5所示:图3-5 添加用户扩展属性界面当点击“修改”按钮时,要求就选中用户的信息根据用户id显示在修改页面中,界面如
20、图3-6所示:图3-6 用户信息修改页面3.2.4 角色管理界面设计根据需求,点击左侧“角色管理”时,将会在右侧显示一个角色树,点击每个角色后,右侧显示角色的信息,与NetEye SOC的角色管理对应。单击角色树中的右键,会有添加、删除选项。点击“添加”后,右侧界面刷新为空,输入相应信息点击“确定”后,该角色添加完成(为新添加的角色赋予权限后,在角色树中可把该角色删除)界面显示如图3-7所示:图3-7 角色管理界面3.2.5 权限管理界面设计点击左侧“权限管理”时,要求在系统中出现角色管理树与NetEye SOC权限管理树的界面,这一部分的设计要在用户需求基础上,将具体的使用权限和角色对应起来
21、。界面如图3-8所示: 图3-8 权限管理界面3.3 数据库表设计该系统模块的实现有多个表设计组成, 用户表结构的设计也是很重要的,一个系统能否正常高效的运行同数据库表的设计有很大的关系。设计数据库表,要注意的就是和实际相联系,设计时要充分考虑到用户使用和实现功能时的效率。数据库表的设计清单如表3-1所示:表 3-1 数据库表的设计清单序号表名称包含的数据元素1基本属性表人员ID ,账户,密码,描述信息2扩展属性表ID,电子,地址,出生日期,国家,性别,第一安全域,安全域,安全域的名字。3人员角色映射表人员的ID ,角色ID,一个人员可以对应多个角色4角色表角色id ,自己的pid , 父角色
22、的pid ,角色描述,叶子节点标示5角色扩展表角色的id 角色的扩展信息6树表树的id, 名字 ,父节点 ,目标, 位置7角色树映射表树的id 角色id在这个系统模块的实现中共牵涉到7个表的设计,详细的设计可以参看源程序的数据库的设计部分。第4章 用户管理模块系统实现本章将根据用户管理模块对系统的设计进行代码实现。其中包括修改密码、用户信息、用户管理、角色管理和权限管理模块的代码实现,自定义标签的实现将在用户管理模块进行阐述。4.1 数据库表创建创建用户基本属性表:create table dd_person(p_id number(16) primary key,P_name varchar
23、2(32) not null unique,p_password varchar2(128) not null,p_account varchar2(32) not null unique,p_desc varchar2(256)在本系统模块中一共关联了七个表,三个序列。详细的数据库实现代码参见源程序工程架构中的数据库建表语句。4.2 修改密码修改密码首先要接收到用户传来的用户名、密码之后通过配置文件,调用后台的Action进行执行,action通过bo、vo、dao层的调用修改密码。修改密码的数据dao层的核心代码如下:String sql = "update dd_person
24、set P_PASSWORD=? where P_ACCOUNT=?"String para = newPass, username ;int result = executeUpdate(sql, para);4.3 用户信息根据当前用户的登录时的ID,从数据库中动态的显示出用户的所有信息。Jsp中的主要代码如下:在页面
25、中使用request.getAttribute("id")类似的参数传递得到页面中实现的数据。引入type=".neusoft.usermanager.team12.dto.RoleInfo" 围是scope="request"通过struts-config.xml配置文件,找到相应的方法,进行处理dao中的数据库查询返回的语句如下:List lrole = new ArrayList();while (irole.hasNext()mrole = (Map) irole
26、.next();ri = new RoleInfo();ri.setId(String) mrole.get("id");.user.setRoles(lrole);return user;4.4 用户管理用户管理是一个重要的管理平台,在用户管理这个子模块,有查询、增加、删除、修改、刷新等操作。首先要在页面中能够动态的从数据库中读出所有的用户信息,这是实现的关键。实现的核心代码可参见源程序。关于自定义标签(tag)实现的部分核心代码中要有doEndTag()方法和doStartTag()方法,在这主要介绍一下翻页标签的实现。在这样的两个方法中可以根据需要实现代码的封装,具体
27、的实现标签的功能。public int doEndTag() throws JspExceptionJspWriter out = this.pageContext.getOut();return EVAL_PAGE;要配置一个tld文件,在tld文件中指明要用到的tag类,根据这个配置在xml文件中和配置系统标签一样就可以在页面中使用自定义标签。在页面中使用标签的核心代码如下:首先引入标签在jsp页面中可以使用下面的代码:
28、ion="UserAction.do?method=getUserKeyInfoForPage"pageinfo=''>
4.5 角色管理登录是用户管理模块的第一步,也是属于角色管理的。管理人员只有先登录到系统才能利用用户管理模块的功能对系统进行维护和管理。用户管理模块中用户要输入用户名和密码到数据库中进行验证工作才能够实现登录部分,其中包括验证码的实现。进行数据库查询判断账户是否合法的核心
29、代码如下:String sql = "select * from dd_person where p_account=? and p_password=?"Stringpara=name,pass;List result = executeQuery(sql, para);角色是根据现实生活中的实际抽象出来的,角色管理的设计思想是面向对象的。人是有角色的。这一部分的难点是在树的动态读取,局部刷新,角色与权限的合理映射和传值后台操作。包含在bo层的生成树对应soctreeview树的部分代码如下所示:sb.append("javascript:void leafOn
30、click(").append(vo.getId()append(");","showMenuEx(").append(vo.getId().append(",'").append(vo.getText().append("',true)",null,");sb.append(");n"); 包含在bo层角色树核心代码主要使用sb.append()来动态的完成树的创建。角色和权限是一件十分复杂的设计过程,里面牵涉到了数据大量频繁的读取和显示。具体的实现详细过程
31、和方法,可参阅毕业设计的具体类文件。4.6 权限管理权限管理实现的核心技术主要体现在了树的动态生成和角色树读取数据的实现。另外重要的一点就是数据库的设计部分,如何将角色和权限对应起来,这是和数据库中表的设计相关,将角色id和权限树中的id相映射。权限管理的核心代码如下:JsObj js = new JsObj();js.setCallBackFunction("setsuccess");JSONObject jsonobj=new JSONObject();jsonobj.put("setment", "设置成功!");js.addC
32、allBackFunParam(jsonobj);在权限的设置中和角色相对应,使用了json技术,进行相应的处理。结 论本文是在NetEyeSOC安全运维平台的基础上实现了用户管理模块的相关功能,实现了修改密码、用户信息显示、用户管理(包括修改、增加、删除、刷新等)、权限管理、角色管理等功能。本文对基于Struts框架下的用户管理模块的实现有一个详细的分析和设计模式,实现了总体的需求功能和架构。用户管理模块系统的开发基于Struts框架,使用了自定义标签、局部刷新等技术,具有较高重用性、页面简洁、灵活动用等特点。由于个人水平有限、经验缺乏和时间不足等原因,论文和毕业设计在实现中还有许多的不足之
33、处。部分细节问题还需要解决,出现错误和不妥之处在所难免,恳请各位老师批评指正。参考文献1 Rnold Doray,Struts基础教程,人民邮电,2007年2月2 ndrew Haigh,面向对象的分析与设计,机械工业,2003年3 Simon Brownv、Robert Burdick等编著,JSP编程指南,第2版,电子工业,2002年4 小乐美,J2EE经典实例详解,清华大学,2002年5 Marty Hall Larry Brown 学良 译,Sevelet 与JSP 核心编程,第2版,清华大学6 卫琴,精通Struts:基于MVC模式地Java Web设计于开发,电子工业7 晓黎、晓辉编著,Visual Basic + Oracle 9i数据库应用系统开发与实例创作人,人民邮电,2003年6月8 Bruce Eckel著,侯捷 译,Java编程思想,第2版,机械工业,2002年9月l