
1414.BS架构的权限管理系统毕业设计论文.doc
20页毕 业 实 习 报 告题 目: B/S架构的权限管理系统 系 别: 计算机科学与技术 专业班级: 软件技术 学 号: 学生姓名: 指导教师: 2007年3月12日 —2007年6月12日摘 要管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的权限管理系统是管理信息系统中可代码重用性最高的模块之一任何多用户的系统都不可避免的涉及到相同的权限需求,都需要解决实体鉴别、数据保密性、数据完整性、防抵赖和访问控制等安全服务(据ISO7498-2)例如,访问控制服务要求系统根据操作者已经设定的操作权限,控制操作者可以访问哪些资源,以及确定对资源如何进行操作。
目前,权限管理系统也是重复开发率最高的模块之一在企业中,不同的应用系统都拥有一套独立的权限管理系统每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:1) 系统管理员需要维护多套权限管理系统,重复劳动2) 用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证3) 由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难采用统一的安全管理设计思想,规范化设计和先进的技术架构体系,构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统,使得权限管理系统真正成为权限控制的核心,在维护系统安全方面发挥重要的作用,是十分必要的关键词:J2EE、JSP、ServletJDBC、JavaBean、Tomcat、MVC目录摘 要 2目录 3第一章 引言 41.1 权限管理系统的基本内容 41.2 权限管理系统的意义 4第二章 系统需求分析 52.1 权限管理系统概要 52.1.1 后台功能模块 52.1.2 前台权限测试 7第三章 系统设计与实现 83.1 权限管理系统实现——MVC架构 83.2 数据库设计 93.2.1 数据库关系图 93.2.2 数据库可行性分析 93.3 持久层 103.4 逻辑层 17总结 19参考文献 20第一章 引言1.1 权限管理系统的基本内容 权限管理系统是很多系统的一个必不可少的一个模块功能,主要功能包括:用户信息管理、角色信息管理、模块信息管理、权限管理及其分配。
本系统通过分配角色给每个用户,使其拥有相应的权限,并且可以对角色也可以进行添加、修改、删除等操作角色者拥有相应的权限,同时也可以对权限进去添加、修改、删除等操作本系统主要为构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统为目标而完成1.2 权限管理系统的意义 权限管理是Web应用项目中比较关键的环节,因为浏览器是每一台计算机都已具备的,如果不建立权限管理系统,那么一个“非法用户”可以轻而易举通过浏览器访问Web应用项目中的所有功能因此需要权限管理系统进行权限检测,让经过授权的用户可以正常合法的使用已授权的功能,而对那些未授权的非法用户拒之门外权限管理系统应该对每一类或每一个用户,分配不同的系统操作权限,并应具有扩展性,也就是它可以加入到任何一个带有权限管理的Web应用项目中,就像构件一样可以被重复使用第二章 系统需求分析2.1 权限管理系统概要2.1.1 后台功能模块(1)登录模块 把用户输入的用户名及其密码带后台与数据库中该用户的信息进行验证,如果用户名存在并且密码正确则进入系统;如果错误,则返回错误提示页要求用户重新输入用户名及其密码2)用户信息模块①添加新用户要求管理员详细的填写添加新用户表单,提交后系统后台验证该用户是否已经存在,如果没有则把新用户资料添加进数据库并且返回添加成功页,如果该用户已存在则直接返回错误提示页。
②用户管理显示出数据库中所有用户的简略资料,包括:编号、姓名、部门、③用户查询管理员可以输入用户的查询条件来查询用户,条件包括:编号、姓名、角色,只要输入三个条件中的一个则可以查询到该用户④用户详细资料显示管理员可以查询到用户的具体资料,包括:编号、用户登录帐号、用户登录密码、姓名、部门、办公室、、E-Mail、是否在职状态、拥有的角色信息⑤用户资料修改管理员可以修改用户的基本资料,包括用户登录密码、姓名、部门、办公室、、E-Mail、是否在职状态⑥删除用户管理员可以删除任意用户,并且删除用户的同时该用户所有的角色信息将同时被删除⑦指定角色管理员可以对用户的角色进行设置,包括添加、删除用户的角色信息(3)角色信息模块①添加新角色添加新角色信息,主要信息包括:角色名②角色详细信息显示该角色的详细信息,有角色名及其拥有该角色的用户简略资料③删除角色删除选中的角色,并且同时将删除所有用户的该角色信息和该角色拥有的所有权限信息④指定用户可以指定一个或多个用户的该角色信息,同时也有删除某个用户该角色的功能4)权限模块①添加新权限模块添加新权限模块信息,信息包括:权限名、权限介绍②删除权限模块删除某个权限模块,删除同时将删除拥有该权限所有的角色信息。
③修改权限模块修改权限模块的权限名和权限介绍5)权限管理①指定某个角色应该具有的权限(角色→模块)分配权限模块给角色,同时也可以修改某个角色的权限信息②指定某个用户具有的特殊权限(用户→角色)分配角色给用户,同时也可以修改某个用户的角色信息2.1.2 前台权限测试(1)登录前台测试页面把用户输入的用户名及其密码带后台与数据库中该用户的信息进行验证,如果用户名存在并且密码正确则进入系统;如果错误,则返回错误提示页要求用户重新输入用户名及其密码并且如果登录成功将返回用户的具体资料到页面显示2)测试用户权限用户登录系统以后,可以通过页面显示出来的所有权限进行测试,测试该用户是否拥有所选中的权限第三章 系统设计与实现3.1 权限管理系统实现——MVC架构模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:模型、视图、控制器它们各自处理自己的任务视图是用户看到并与之交互的界面对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.模型表示企业数据和业务规则在MVC的三个部件中,模型拥有最多的处理任务例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性控制器接受用户的输入并调用模型和视图去完成用户的需求所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据Java开发Web Application有几种符合MVC设计模式的开发方式:1: Jsp+Servlet+JavaBean(EJB) 2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)3:TDK(Turbine,Velocity...)4:Xsp5:Jsp+Struts+JavaBean(EJB) 3.2 数据库设计数据库是管理信息系统的核心内容。
目前,Web与数据库接口技术有很多,其中JDBC是Java程序连接和存取数据库的应用程序接口,由一组用Java语言编写的类与接口组成,是执行SQL语句的Java API本文介绍的管理信息系统中,在数据的存取方面,采用了 JSP/Servlet+JDBC的技术,即客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建立连接Web服务器主要负责接收本地或远程浏览器的HTTP数据请求,然后中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进行访问和相应的操作处理Servlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器这样,不仅将客户端与数据库服务器端分开,同时提高了数据库的访问效率3.2.1 数据库关系图 图3.1 数据库关系图3.2.2 数据库可行性分析表3.1 数据库可行性分析编号功能SQL语句1添加新用户Insert into master (username, logonid, password, department, office, phone, email, state) values (?,?,?,?,?,?,?,?)2查询所有用户信息select * from master3通过用户ID或姓名查询用户资料select * from master where userid=? or username=?4通过角色名查询用户信息select * from master userid=(select userid from mastergroup where role=?)5修改用户信息Update action set usernme=?, logonid=?, password=?, department=?, office=?, phone=?,email=?,state=? where userid=?6删除一个用户delete master where userid=?7查询所有权限模块信息select * from action8添加一个新权限模块insert into action(actionname,explain) values(?,?)9修改权限模块信息update action set actionname=?,explain=? where actionid=?10删除某个权限模块信息de。
