




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计说明书(论文) (2012 届)届) 论文题目 物业管理系统 作者姓名 王 坚 指导教师 王 子 仁 学科(专业) 软件工程0804 所在学院 计算机科学与技术学院 提交日期 2012 年 5 月 27 日 浙江工业大学本科毕业设计说明书(论文) I 摘要摘要 近年来,随着小区服务的多元化和繁杂化,传统的物业管理方式很难适应 新的需求。采用物业管理系统,将信息化和网络技术运用到传统的物业管理中, 可以很好地应对业主对于物业服务提出的多元化需求,提高物业服务水平。 本系统是面向多物业公司、多小区共同使用的信息管理系统,主要功能模 块包括:物业公司信息管理,物业小区信息管理,业主信息管理,物业费管理 和短信平台管理等等。本系统采用 B/S(Browser/Server)架构和 J2EE 技术框架。 为了满足多层次用户的权限控制需求,提高权限控制的灵活性,本系统采用 RBAC(基于角色的权限控制)进行设计,采用 Spring Security3.0 技术框架实现。 本系统采用 AOP 编程实现用户关键行为的日志跟踪。本系统的短信平台采用了 中国移动 Open MAS 代理服务器提供的 Web Service 接口,短信服务与业务系统 之间通过 Java 消息机制进行通信和同步。 本系统的部署和使用,不仅有效地实现了物业公司的信息管理,还规范化 了物业管理的工作流程,提高了工作效率;同时通过短信服务,拓宽了业主与 物业管理人员之间的沟通渠道,实现信息的有效传递。 关键词:关键词:物业管理,RBAC,短信平台,Spring Security,AOP 日志 浙江工业大学本科毕业设计说明书(论文) I Abstract Recent years, the conventional property management services have become inadequate to fully meet the needs for the increasing diversification and complexification of requirements. Applying information and network technologies to traditional property management could meet diverse needs of owners, and promote the level of the service. This system is a shared information management platform among multi- properties company and multi-residential community. The main function modules include information management of property company, information management of residential community, information management of owner, management of property charges and SMS platform management, etc. The system uses the B/S (Browser/Server) architecture and J2EE framework. In order to meet multi-level access control needs and improve the flexibility of access control, the access control design is based on RBAC (Role Based Access Control) theory and implemented with Spring Security 3.0 Framework. Also the system uses AOP (Aspect Oriented Programming) technology to track users major behaviors. The SMS platform of the system uses the interface which provided by the Open MAS proxy server of China Mobile. Java Message mechanism is used to communicate and synchronize between SMS service process and the web system. Using this system, not only helps to manage the property information, but also standardize the property management workflow and to improve work efficiency, furthermore, the SMS service broadens the channels of communication between owners and property management stuffs. Keywords:Property management, RBAC, SMS platform, Spring Security, AOP log 浙江工业大学本科毕业设计说明书(论文) I 目录目录 摘要摘要I ABSTRACTI 第一章第一章 绪论绪论.1 1.1研究背景与意义 1 1.2研究内容及现状 1 1.3本文的主要工作 2 1.3.1本文的研究内容2 1.3.2本文的组织结构3 1.4本章小结 3 第二章第二章 物业管理系统需求分析物业管理系统需求分析.4 2.1系统需求分析 4 2.1.1需求概述4 2.1.2用户概述4 2.1.3系统安全需求6 2.1.4系统日志需求6 2.1.5短信平台需求6 2.1.6业务功能需求6 2.2系统架构设计 7 2.3数据库设计 8 2.4小结 9 第三章第三章 物业管理系统安全平台构建物业管理系统安全平台构建.10 3.1RBAC 基本模型 10 3.2RBAC 扩展模型 10 3.1.1基本要素11 3.1.2基本关系12 3.1.3数据库表13 3.3Spring Security .14 3.4Spring Security 扩展 15 3.4.1Spring Security 扩展类图16 3.4.2Spring Security 关键类实现17 3.5安全平台实现 20 3.5.1配置管理20 3.5.2实时控制22 3.6本章小结 23 第四章第四章 物业管理系统的日志系统构建物业管理系统的日志系统构建.24 浙江工业大学本科毕业设计说明书(论文) II 4.1Spring AOP 概述24 4.1.1AOP 基本概念.24 4.2Log4j 日志框架25 4.3日志格式定义 25 4.4日志文件设置 26 4.5日志切点配置 27 4.6日志方法实现 28 4.7本章小结 29 第五章第五章 物业管理系统的短信平台构建物业管理系统的短信平台构建.30 5.1短信发送流程 30 5.2JMS 消息机制构建31 5.2.1ActiveMQ 消息中间件31 5.131 5.2.2Spring JMS + ActiveMQ 配置.31 5.2.3JMS 消息格式定义32 5.2.4JMS 消息生产者33 5.2.5JMS 消息消费者34 5.3OpenMAS 接口35 5.4业务短信管理 36 5.3.1业务短信切点配置36 5.3.2业务短信通知方法36 5.5群发短信管理 37 5.6历史短信查询 37 5.7本章小结 38 第六章第六章 物业管理系统业务功能实现物业管理系统业务功能实现.39 6.1公司信息管理 39 6.2物业项目管理 39 6.2.1小区信息管理39 6.2.2楼宇信息管理39 6.2.3房屋信息管理40 6.3业主信息管理 40 6.4物业缴费管理 41 6.4.1物业费创建44 6.4.2物业费录入45 6.4.3物业费审核46 6.5本章小结 46 第七章第七章 总结与展望总结与展望.47 7.1总结 47 7.2展望 47 参考文献参考文献.48 致谢致谢.50 附录附录.51 浙江工业大学本科毕业设计说明书(论文) III 附录 1 毕业设计文献综述51 附件 2 毕业设计开题报告51 附件 3 毕业设计外文翻译51 浙江工业大学本科毕业设计说明书(论文) I 图目录图目录 图 2-1 组织结构图4 图 2-2 系统整体用例图5 图 2-3 物业管理系统业务功能需求结构图.7 图 2-4 物业管理系统整体架构设计8 图 2-5 物业管理系统业务功能模块数据库关系图9 图 3-6 RBAC 基本模型10 图 3-7 RBAC 扩展模型11 图 3-8 物业管理系统权限控制数据库 E-R 图 .13 图 3-9 Spring Security 基本组件14 图 3-10 流经 Spring Security 框架的请求15 图 3-11 Spring Security 扩展类图17 图 3-12 MyInvocationSecurityMetadataSource 的 loadDefinedResource 方法实现18 图 3-13 MyInvocationSecurityMetadataSource 的 getAttributes 方法实现19 图 3-14 MyUserDetailsService 的 loadUserByUsername 方法实现.19 图 3-15 MyAccessDecisionManager 的 Decide 方法实现20 图 3-16 资源管理页面(资源列表).21 图 3-17 角色管理页面(给角色分配权限).21 图 3-18 用户管理页面(创建用户).22 图 3-19 访问拒绝提示.22 图 4-20 用户行为跟踪日志片段26 图 4-21 Log4J 日志文件配置.26 图 4-22 Spring AOP 日志切点配置.28 图 4-23 添加操作时触发的日志记录函数.29 图 4-24 批量添加操作时触发的日志记录函数.29 图 5-25 短信发送流程顺序图.30 图 5-26 面向消息的中间件.31 图 5-27 Spring JMS+ActiveMQ 配置 32 图 5-28 短信发送消息生产者.33 图 5-29 短信发送消息消费者.34 图 5-30 Open MAS 接口 35 图 5-31 业务短信切点配置.36 图 5-32 短信平台页面(查找联系人).37 图 6-33 业主数据导入流程图.41 图 6-34 物业缴费管理跨职流程图.43 图 7-35 物业费项目创建表单.44 图 6-36 财务人员界面物业费清单列表(导出).45 图 6-37 小区管理员界面物业费清单列表(录入).45 图 6-38 财务人员界面物业费清单列表(审核).46 浙江工业大学本科毕业设计说明书(论文) I 表目录表目录 表 4-1 用户操作日志格式定义表26 浙江工业大学本科毕业设计说明书(论文) 1 第一章第一章 绪论绪论 1.1研究背景与意义研究背景与意义 近年来,随着市场经济的发展和人们生活水平的提高,住宅小区已经成为 了人们安家置业的首选。人们不但对住宅本身的美观、质量要求越来越高,同 时也对小区的物业服务和管理要求越来越高。传统的人工管理方法已经不能满 足时代的需求,主要表现在以下几个方面: 首先,在传统的物业管理中,管理者和业主的关系是管理服务与被管理的 关系,业主不能积极参与到物业管理活动中去。 其次,物业管理中的重要组成部分是客户服务,在传统的物业管理中,通 常通过电话或申请单来完成服务申请,这种方式给数据修改、编辑、查询以及 小区各种信息的管理带来了很大的不便。 最后,由于各项服务都需要人手工去完成,更甚者要上门发传单以通知业 主,这不仅增大了物业管理中的工作量,也加大了人力资源的浪费。 基于此,考虑采用 B/S 架构的 Web 技术实现物业公司的相关信息收集、发 布、存储处理和交流,实现不同地域信息的快速传递和共享。采用基于 Web 的 物业管理信息系统有利于实现物业公司对于小区信息的综合管理,便于准确查 询和计算相关物业信息,进而达到提高效率降低成本的目的。同时,也有利于 降低业主对于物业服务投诉次数,提高业主对物业服务的满意度,提升公司整 体形象的目的。 1.2研究内容及现状研究内容及现状 物业管理系统的设计从低到高经历了三个阶段:第一个层次单项数据处理, 该方法模仿手工管理方式,多用于简单的事务性工作,这也是目前国内大多数 物业管理公司的计算机应用水平;第二个层次是数据综合处理,此时计算机应 浙江工业大学本科毕业设计说明书(论文) 2 用呈现网络化和实时处理特点,已能在一定程度上提高物业管理效率;低三个 层次则是管理信息系统(MIS) ,此时信息论、控制论和系统工程等优化理论在 软件程序中得以运用。计算机网络和数据库的建立,使得计算机管理某个单一 系统发展成为全面的管理系统,而且具备了较高程度的智能化决策能力。 以往由于计算机技术和通信技术的限制,物业管理系统只能在一个低水平 层次上进行简单的信息共享和系统互联,无法实现一个实时性、健壮性及扩展 性良好的小区物业管理系统。而如今计算机技术的发展,为以上问题提供了一 些较好的解决方案,通过构建一个基于 B/S 模式的小区物业管理系统可以很好 地解决当前小区物业管理系统所面临的问题 1.3本文的主要工作本文的主要工作 1.3.1本文的研究内容本文的研究内容 本文详细阐述了基于 B/S 架构的物业管理系统的设计思路和方法以及课题 的实现过程,并就课题中的几个主要方面作详细的分析和说明,该课题主要包 括以下几个方面: (1) 根据从客户方面了解到的需求进行详细分析,并给出系统设计。 (2) 扩展 RBAC(Role-Based Access Control)基本模型,设计物业管理系统 的访问控制模型。 (3) 修改 Spring Security3.0 框架,实现系统的访问控制,构建物业管理系统 的安全平台,使得不同用户登录系统后可自动加载拥有的功能模块,并 可以屏蔽非法的访问请求。 (4) 采用 Spring AOP 技术和 Log4j 日志框架设计系统的日志跟踪系统,构建 物业管理系统的日志系统,使得可追溯用户的关键操作(增、删、改操 作) 。 (5) 采用 OpenMAS 二次开发包,构建物业管理系统的短信平台,使得业主 可以接收到来自系统的消息。 (6) 采用 ActiveMQ 消息服务器,构建物业管理系统的消息发送与接收机制, 浙江工业大学本科毕业设计说明书(论文) 3 使得短信平台的短信发送服务可以与业务系统实现通信和同步。 (7) 实现物业管理系统的其他业务功能。 1.3.2本文的组织结构本文的组织结构 本文共分为七个章节: 第一章:绪论。介绍本课题的研究背景与意义、研究内容和现状,最后阐 述本文的主要研究内容和组织结构。 第二章:物业管理系统需求分析。介绍系统的整体需求、功能性需求和其 他非功能性需求,并给出系统的整体架构设计,数据库设计。 第三章:物业管理系统安全平台构建。介绍本系统的 RBAC 扩展模型,以 及对 Spring Security 框架的扩展。 第四章:物业管理系统日志系统构建。介绍基于 Spring AOP 技术和 Log4j 日志框架实现的日志跟踪系统。 第五章:物业管理系统短信平台构建。介绍基于中国移动 Open MAS 接口 的短信平台实现,以及短信发送服务程序与 Web 系统之间的消息传递机制实现。 第六章:物业管理系统业务功能实现。介绍物业管理系统中物业公司信息 管理、物业项目信息管理、业主信息管理、物业缴费管理等功能的实现。 第七章:总结和展望。总结系统开发过程中的经验和成果,并对系统的改 进方向提出展望。 1.4本章小结本章小结 本章简要介绍课题的研究背景与意义、以及该课题的国内外研究现状和主 要研究内容,最后,给出了本文的主要研究内容及本文的组织结构 浙江工业大学本科毕业设计说明书(论文) 4 第二章第二章 物业管理系统需求分析物业管理系统需求分析 2.1系统需求分析系统需求分析 2.1.1 需求概述需求概述 本系统是由中国移动舟山分公司发起并推广的面向全市物业公司共享的一 套物业管理信息系统,所以本系统首先必须支持多公司、多小区的共同访问, 而不造成数据的越权和非法访问,为此本系统需拥有一套完善的访问控制机制, 以确保用户只能在权限范围内进行的操作。图2-1显示了系统客户的组织结构图。 中国移动舟山分公司 A物业公司 B物业公司 A1小区 A2小区 B1小区 B2小区 图 2-1组织结构图 物业管理系统的使用主要是为了实现物业管理过程的信息化,满足日益繁 杂的业务需求,实现物业信息的有效存储和传递,简化日常操作,提高管理效 率。物业管理集中体现在物业小区的信息管理、业主信息管理、物业费缴费信 息管理等。小区信息管理又包括了小区基本信息管理、楼宇信息管理、房屋信 息管理等,物业费缴费信息管理又包括了物业费的创建和生成、物业费的录入、 物业费的审核等三个流程。为了提高在物业管理过程中与业主的沟通与交互, 本系统引入短信平台,物业公司可以以短信的形式传递一些通知提醒和温馨提 示,同时在物业费管理流程中,以短信形式通知业主当前的缴费情况。 浙江工业大学本科毕业设计说明书(论文) 5 2.1.2 用户概述用户概述 本系统的用户包括以下五个基本类型(角色):移动公司管理员、物业公 司管理员、物业公司财务人员、小区管理员、系统管理员。同时要求本系统可 以通过权限控制系统灵活的配置新的用户类型。五个基本角色的基本职责描述 如下: (1) 移动公司管理员:负责物业公司信息的创建和维护,信息机账号的创建 和维护。 (2) 物业公司管理员:负责公司用户的创建和维护、小区信息的创建和维护、 业主信息的创建和维护。 (3) 物业公司财务人员:负责物业费缴费信息的创建和维护、缴费审核。 (4) 物业小区管理员:负责物业费的录入工作。 (5) 系统管理员:负责系统的初始化配置,包括系统的权限设置、功能模块 配置、初始用户创建等。 本系统的系统管理员和移动公司管理员用户各只有一个,每个物业公司都 有各自的物业公司管理员、财务人员和若干个小区管理员。不用类型的用户登 录系统后所拥有的功能模块不同,相同类型的用户根据所在公司或小区不同, 能够访问的数据也不同。图2-2显示了系统的整体用例图。 浙江工业大学本科毕业设计说明书(论文) 6 系统管理员 系统初始化 系统配置 用户管理 移动公司管理员 物业公司信息管理 Open MAS账号管理 物业公司管理员 物业信息管理 业主信息管理 短信平台管理 物业费查看 物业小区管理员 物业信息查看 业主信息查看 物业费录入 物业公司财务人员 物业费创建 物业费审核 图 2-2系统整体用例图 2.1.3 系统安全需求系统安全需求 通过上述用户概述,我们了解到本系统的用户类型非常多,并且用户又分 为不同的层次,按权限从高到低可以分成系统级用户、公司级用户和小区级用 户。每个层次的用户能够的访问数据层次不同,如小区级用户只能查看其所在 小区的信息;公司级用户可以查看本公司的多个小区的信息;系统级用户可以 查看所有公司的信息。同一层次的用户,拥有的功能模块又有所不同,如公司 管理员可以管理业主信息,却不能创建物业费信息,而公司财务却可以创建和 审核物业费,但是却不能编辑业主信息。因此,本系统需要一套完善的权限控 制机制,以保障用户只在其权限范围使用系统,并且该权限控制机制可以支持 灵活的配置,以适应需求变动。 2.1.4 系统日志需求系统日志需求 为了保证系统数据的安全,我们需要跟踪用户的一些关键操作,如对数据的 增删改等操作。一旦数据被非法操作后,我们可以通过日志文件追溯数据修改 浙江工业大学本科毕业设计说明书(论文) 7 的时间和修改者。 2.1.5 短信平台需求短信平台需求 传统的物业管理方式中,物业公司与业主之间的沟通只能通过张贴公告或 逐户上门通知,这样不仅消息传递速度慢、耗费人力资源大,而且传递的效果 也不佳。所以本系统引入短信平台功能,物业公司可以通过本短信平台实现与 业主的沟通,不仅消息传递及时了,而且减少了不少人力资源。 另外通过在业务流中(如物业缴费管理)引入短信提醒功能,及时提醒业 主当前缴费信息,能够有效提高业主对公司服务的满意度。 2.1.6 业务功能需求业务功能需求 为了满足多公司的共同使用,本系统必须支持以下功能模块:公司信息管 理模块、信息机账号管理模块。为了满足物业公司的日常管理工作需求,本系 统必须支持以下功能模块:公司信息管理模块、物业项目管理模块、业主信息 管理模块、物业缴费管理模块。图2-3详细描述了本系统的功能性需求结构图。 舟 山 市 物 业 管 理 系 统 物业公司管理模块 信息机账号管理模块 物业项目管理模块 业主信息管理模块 物业缴费管理模块 小区信息管理 楼宇信息管理 房屋信息管理 物业费创建 物业费录入 物业费审核 图 2-3 物业管理系统业务功能需求结构图 (1) 物业公司管理模块:该模块主要是管理物业公司的基本信息。 (2) 信息机账号管理模块:信息机账号是指 Open MAS 服务器上注册的账号, 每个物业公司都拥有一个账号,并且该公司所有短信业务都使用该账号。 浙江工业大学本科毕业设计说明书(论文) 8 (3) 物业项目管理模块:物业项目是指物业公司所管理的住宅小区或写字楼 等,具体又包括了小区的基本信息管理、楼宇信息管理和房屋信息管理。 (4) 业主信息管理模块:业主信息是指小区业主的基本信息及家庭成员信息, 业主信息的房屋信息与物业项目信息关联。 (5) 物业缴费管理模块:物业缴费主要是指物业费的收缴,本模块主要实现 物业费缴费的流程,以及物业费信息的查看和检索。 2.2系统架构设计系统架构设计 本系统采用 Struts + hibernate + Spring 架构进行 Web 系统的开发,同时为了 解决批量短信发送后一直处于等待状态的系统瓶颈,将短信发送服务设计成一 个单独的应用程序,并通过 Java 消息机制进行通信和同步。 本系统的采用 Hibernate 框架实现数据的持久化操作,不过在批量数据处理 时考虑到执行效率以及内存占用等因素,采用了直接调用 JDBC 接口来实现,同 时也在数据系统中创建存储过程和触发器以提高数据存储的效率。 本系统控制层采用 Struts 框架的 Action 来处理业务逻辑,Action 返回的数据 为 Json 格式,可以被前台的 JavaScript 脚本语言处理,从而进行显示。 Spring 框架是一个分层架构,由 7 个定义良好的模块组成。本系统使用了 Spring 的核心容器、Spring 上下文、Spring AOP 等组件。同时本系统还采用了 Spring 的子项目,包括 Spring JMS、Spring Security 等组件。 浙江工业大学本科毕业设计说明书(论文) 9 物业管理系统Web应用程序 Spring JMS API JMS API 发送消息 A Ac ct ti iv ve eM MQ Q消消 息息服服务务器器 短信服务程序 消息监听 Spring JMS API JMS API Hibernate O Op pe en nM MA AS S服服务务器器 调用Web服务 数据库数据存取 表现层JSP页面 Spring容器 Struts Action Web浏览器 R Re eq qu ue es st t R Re es sp po on ns se e 数据持久化 Hibernate DAO 数据存取 Service层处理业务逻辑 Json 数据 图 2-4 物业管理系统整体架构设计 2.3数据库设计数据库设计 通过对系统业务需求的分析,我们抽象出以下几个实体对象:公司、短信账 号、短信、小区、楼宇、房产、业主、家庭成员、物业费项目、物业费,另外 还有一张业主-房屋关系表。各个实体对象之间的关系均为一对多关系,包括: 公司小区、公司短信账号、小区楼宇、楼宇房产、业主房产、业主 家庭成员、小区物业费项目、物业费项目物业费、业主物业费。 图 2-5 描述了系统实体对象的数据库表结构,及其它们之间的关系。 浙江工业大学本科毕业设计说明书(论文) 10 公司 公司编号 公司名称 公司法人 公司执照 公司电话 公司地址 注册时间 注册资金 公司描述 是否启用 int varchar(50) varchar(50) varchar(50) varchar(50) varchar(200) datetime int varchar(200) bit 小区 小区编号 小区名称 公司编号 所在地区 所在街道 详细地址 交付时间 小区规模 小区类型 小区描述 是否启用 int varchar(50) int varchar(50) varchar(50) varchar(200) datetime int varchar(50) varchar(200) bit 楼宇 楼宇编号 楼号 小区编号 楼宇类型 层数 跳过层数 单元数 单元标识 每层户数 楼宇描述 是否启用 int int int varchar(50) int varchar(50) int varchar(50) int varchar(200) bit 房屋 房屋编号 楼宇编号 房号 房屋面积 是否入住 描述 int int varchar(50) float bit varchar(200) 业主 业主编号 房号 业主姓名 房屋面积 手机号码 性别 名族 籍贯 生日 婚否 工作单位 个人爱好 证件类型 证件编号 家庭电话 领房时间 装修时间 入住时间 车位号 车牌号 车型号 储藏室 使用状况 其他地址 紧急联系人 紧急电话 描述 int varchar(50) int float varchar(50) varchar(50) varchar(50) varchar(50) datetime bit varchar(100) varchar(100) varchar(50) varchar(50) varchar(50) datetime datetime datetime varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(200) varchar(50) varchar(50) varchar(200) 家庭成员 成员编号 业主编号 成员姓名 关系 证件编号 联系电话 int int varchar(50) varchar(50) varchar(50) varchar(50) 房屋-业主 编号 房屋编号 业主编号 Int int int 物业费项目 编号 小区编号 项目名称 缴费年份 缴费月份 创建时间 创建人员 int int varchar(100) int int datetime varchar(50) 物业费 编号 项目编号 房屋编号 业主编号 缴费年份 缴费月份 缴费日期 应收金额 实收金额 收费人员 录入人员 录入时间 审核时间 审核人员 状态 备注 int int int int int int datetime float float varchar(50) varchar(50) datetime datetime varchar(50) varchar(50) text 短信账号 编号 账号名称 上行地址 下行地址 用户名 密码 扩展码 公司编号 int varchar(50) varchar(200) varchar(200) varchar(50) varchar(50) int int 历史短信 编号 短信账号 接收人 状态 短信类别 发送时间 发送人 短信内容 int int text varchar(0) int datetime varchar(50) varchar(200) 图 2-5 物业管理系统业务功能模块数据库关系图 基于角色的访问控制系统相关的数据库表设计在第四章中详细描述。 2.4小结小结 本章对系统需求展开了详细的分析,包括系统的业务功能需求和非业务功 能需求(如:权限控制、日志系统等) ,接着给出了系统架构设计和数据库设计。 浙江工业大学本科毕业设计说明书(论文) 11 第三章第三章 物业管理系统安全平台构建物业管理系统安全平台构建 3.1RBAC 基本模型基本模型 1992 年,Ferraiolo 等人提出了基于角色的访问控制模型1。在 RBAC 模型 中,权限(Permission)直接通过角色(Role)起作用,用户(User)被赋予一 个或多个角色进而获取角色的权限,这很大程度上简化了权限的管理。在这种 权限模式下,用户的角色转换变得很容易实现。角色针对组织中的各种单一功 能进行创建,用户依据他们的责任和职位被指派一个或多个角色,用户对信息 的访问在指派角色的基础上被管制。 1996 年,Sandhu 发布了 RBAC96 的 RBAC 基本模型2,图 3-6 显示了 RBAC 的基本模型。该模型中有三个实体集合和一个会话集合,叫做用户 (User)、角色(Role)、权限(Permission)以及会话(Session),还包括了 两对关系,用户角色分配(UA)和角色权限分配(PA),这两对关系都是多对 多的关系。一个用户可以是多个角色的成员,一个角色也可以拥有多个用户; 同样的,一个角色可以拥有多个权限,同一个权限也可以分配给多个角色。 RBAC 的关键就体现在这两个关系中。最终,是用户执行权限,角色作为中介 使得用户执行权限。 U Us se er rR Ro ol le eP Pe er rm mi is ss si io on n U UA AP PA A S Se es ss si io on n U Us se er r_ _S Se es ss si io on ns s S Se es ss si io on n_ _R Ro ol le es s 图 3-6 RBAC 基本模型 浙江工业大学本科毕业设计说明书(论文) 12 3.2RBAC 扩展模型扩展模型 RBAC 基本模型简化了权限的管理,使得可以灵活配置用户所拥有的权限, 但是它并不能满足所有的需求。例如:在物业管理系统中,公司管理员可以查 看该公司管理的所有小区的业主信息、缴费信息等,但是小区管理员只能查看 自己小区的信息。同样,A 物业公司只能查看自己公司管理的小区信息,而不 能查看 B 公司的小区新。如果要求 RBAC 基本模型实现上述控制,将会导致权 限集合的扩散,使得用户能够访问权限范围之外的数据。 经过分析不难发现,凡是涉及业务逻辑的控制,使用 RBAC 基本模型进行 权限管理是比较困难的。RBAC 基本模型优势在于解决对象(资源)层面上的 权限管理,即执行者能否操作某个对象,能够对其进行何种操作。而对于数据 层面上的权限管理,RBAC 基本模型在实现校验上是非常低效和复杂的。为此, 本课题根据实际的我业务需求,对 RBAC 基本模型进行扩展,设计了符合物业 管理系统需求的权限管理模型RBAC 扩展模型,图 3-7 显示了 RBAC 扩展 模型: U Us se er rR Ro ol le eP Pe er rm mi is ss si io on n U UA AP PA A G Gr ro ou up p G GA A S Se es ss si io on n U Us se er r_ _S Se es ss si io on nS Se es ss si io on n_ _R Ro ol le e S Se es ss si io on n_ _G Gr ro ou up p M Mo od du ul le e MA R Re es so ou ur rc ce e RA 图 3-7 RBAC 扩展模型 比较 RBAC 基本模型和 RBAC 扩展模型,我们可以看到在 RBAC 扩展模型 中增加了三个对象集合和三对关系,他们分别是:用户组(Group) 、模块 (Module) 、资源(Resource)和用户-用户组分配(GA) 、角色模块分配(MA) 、 权限资源分配(RA) 。 浙江工业大学本科毕业设计说明书(论文) 13 3.1.1基本要素基本要素 用户(User):在这个模型中用户是指直接操作本系统的人,如:物业公司 的工作人员。 角色(Role):是物业公司中特定的一种工作职责或者是职位,如:公司管 理员、会计等。属于同一角色的用户,他们一般是同一职位或是拥有相同责任 的一组人,他们对本系统有着相同的操作功能。 用户组(Group):表示能够访问同一批数据的一组用户的集合,例如:A 公司用户组,表示属于该组的用户都能够访问 A 公司的所有数据;A1 小区用户 组,表示属于该组的用户都能访问 A1 小区的所有数据。 模块(Module):表示一系列功能操作的集合,例如:用户信息管理(包 括了用户的增、删、改功能) ,物业缴费管理(包括了物业费创建、录入、审核) 。用户登录系统后能够根据角色自动加载模块列表。 资源(Resource):表示所有的 URL 请求,如 JSP 页面请求、Action 请求、 JS 文件请求等。 权限(Permission):是操作和资源的聚合,权限的自然属性决定于实际的 应用系统,例如:物业管理系统中,权限可以是“查看业主信息、修改业主信 息” 会话(Session):表示用户登录后被激活的角色和用户组。在物业管理系 统的权限管理中,一个 Session 对象关联一个用户,一个用户在一次访问中只能 拥有一种角色,并且只属于一个用户组。 3.1.2基本关系基本关系 在扩展的 RBAC 模型中共有五对关系,他们分别是 UA(用户-角色分配) 、 PA(角色-权限分配) 、GA(用户-用户组分配) 、RA(资源-权限分配) 、 MA(角色-模块分配) 。 在物业管理系统中,GA 和 UA 是一对多关系,用户只能属于一个用户组, 一个用户组可以有多个用户;一个用户只能拥有一个角色,一个角色可以拥有 浙江工业大学本科毕业设计说明书(论文) 14 多个成员。PA、RA 和 MA 是多对多的关系,一个资源可以被多个权限访问, 一个权限也可以访问多个资源;一个资源可以被多个权限访问,一个权限也可 以访问多个资源;一个角色可以拥有多个模块,一个模块也可以被多个角色拥 有。 3.1.3数据库数据库表表 1,n 1,n 1,n 1,n 1,n 1,n 1,n 1,n 1,n 资源 资源编号 资源名称 资源类型 资源链接 资源描述 所属模块 是否启用 是否管理 Integer Characters (50) Characters (50) Characters (50) Characters (50) Characters (50) Boolean Boolean 资源编号 权限 权限编号 权限名称 权限描述 是否启用 是否管理 Integer Characters (50) Characters (200) Boolean Boolean 权限编号 角色 角色编号 角色名称 角色层次 角色描述 是否启用 是否管理 Integer Characters (50) Integer Characters (200) Boolean Boolean 角色编号 用户 用户编号 真实姓名 用户名 密码 身份证号 职位 手机号码 用户描述 是否启用 是否管理 Integer Characters (50) Characters (50) Characters (50) Characters (50) Characters (50) Characters (50) Characters (200) Boolean Boolean 用户编号 权限资源 编号 权限编号 资源编号 Integer Integer Integer 角色权限 编号 权限编号 角色编号 Integer Integer Integer 模块 模块编号 模块名称 模块链接 模块级别 模块顺序 是否启用 是否管理 Integer Characters (50) Characters (200) Integer Integer Boolean Boolean 模块编号 角色模块 编号 角色编号 模块编号 Integer Integer Integer 用户-用户组-角色 编号 用户编号 角色编号 用户组编号 Integer Integer Integer Integer 用户组 用户组编号 用户组名称 用户组级别 父用户组编号 关联域 用户组描述 是否启用 是否管理 Integer Characters (50) Integer Integer Characters (50) Characters (200) Boolean Boolean 用户组编号 图 3-8 物业管理系统权限控制数据库 E-R 图 图 3-8 显示了物业管理系统安全平台的数据库 E-R 图。从图中可以看出,权 限控制模块共有 6 张实体表和 4 张关系表。实体对象分别是:资源(Resource)、 权限(Authority)、模块(Module)、角色(Role)、用户组(Group)、用户 (User)。关系表分别是:权限-资源(AuthorityResource)、角色-权限 (RoleAuthority)、角色-模块(Role-Module)、用户-用户组-角色 浙江工业大学本科毕业设计说明书(论文) 15 (UserGroupRole)。数据库的表结构和 RBAC 扩展模型中基本要素及基本关系 分别一一对应。 需要注意的是,用户组存在着层次关系,用户组共分为 3 个级别,每个用户 组都有一个父用户组。级别为 1 的用户组的父亲用户组默认为 0,级别为 2 的用 户组的父用户组为级别为 1 的用户组中的一个,级别为 3 的用户组的父用户组 为级别为 2 的用户组中的一个。“关联域”是指该用户组关联的物业公司或物 业小区。 3.3Spring Security 在传统的 Web 系统中,所有的权限验证逻辑都混杂在业务逻辑中,用户的 每个操作可能都需要对用户是否有进行该项操作的权限进行判断,来达到认证 授权的目的。类似这样的权限验证逻辑被分散在系统的许多地方,难以维护。 Spring Security 框架很好的解决了此类问题,它将系统的权限验证逻辑的实现从 业务中分离出来,作为一个单独的“切面”进行管理,它的主要组件如图 3-9 所 示: 安全拦截器 认证管理器 访问决策管理 器 运行身份管理 器 调用后管理器 图 3-9 Spring Security 基本组件 Spring Security 的架构在很大程度上依赖代理(delegates)和 servlet 过滤器, 来实现环绕在 web 应用请求前后的功能层。Spring Security 主要完成两件事情, 其一是认证(Authentication),其二是授权(Authorization)。Web 系统引入 Spring Security 框架后,一个对受保护 Web 资源的请求要经过如图 3-10 所示的 11 层过滤器。 浙江工业大学本科毕业设计说明书(论文) 16 SecurityContextPersistenceFilter SecurityContextImpl LogoutFilter UsernamePasswordAuthenticationFilter BasicAuthenticationFilter RequestCacheAwareFilter SecurityContextHolderAwareRequestFilter AnonymousAuthenticationFilter SessionManagementFilter ExceptionTranslationFilter FilterSecurityInterceptor 受受保保护护的的Web资资源源 请求响应 图 3-10 流经 Spring Security 框架的请求 3.4Spring Security 扩展扩展 虽然 Spring Security 能够很好的实现对受保护 Web 资源的请求的认证和授 权,但是它却并不天生就符合 RBAC 模型。一是,在 Spring Security 中,角色 和权限的概念的等同的,即受保护的对象(资源)直接与角色挂钩,这显然不 符合 RBAC 的思想。二是,Spring Security 没有实现 RBAC 动态职责分离的要求, 因为 Spring Security 中的角色的概念与 RBAC 的不一样,所以无从谈角色的动 态职责分离。 为了让 Spring Security 实现真正意义上的 RBAC,需要自定义图 4-13 的最 后一层过滤器 FilterSecurityInterceptor,命名为 MyFilterSecurityInterceptor,该过 滤器实现 Filter 接口并继承 AbstractSecurityInterceptor 父类。 MyFilterSecurityInterce- Ptor 通过调用 AuthenticationManager 对象完成对用户信息的认证,没有通过认证 的用户将重定向到登录页面,若通过认证,则调用 AccessDecisionManager 对象 浙江工业大学本科毕业设计说明书(论文) 17 完成用户授权。AccessDecisionManager 通过对比用户拥有的权限和被访问受保 护 Web 资源所需要的权限,来判断用户是否可以访问该 Web 资源,若授权成功, 则响应该 Web 资源给用户,若授权失败,则将提示用户无权访问该受保护资源。 3.4.1Spring Security 扩展类图扩展类图 图 3-11Spring Security 扩展类图中以“My”开头并且用红色椭圆选中的类 均是自己实现的扩展类,它们分别是 MyInvocationSecurityMetadataSource、MyFilter- SecurityInterceptor、MyUserDetailsService、 MyAccessDecisionManager 和 TbUser 对象。 (1) MyInvocationSecurityMetada
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校教师资格证考试历年真题汇编
- 建筑工程安全施工管理
- 农业机械化节能技术研究-洞察及研究
- 社交媒体营销对摄影工作室盈利的影响-洞察及研究
- 人工智能辅助禽类疾病精准治疗-洞察及研究
- 数字化转型与行业生态-洞察及研究
- 代理商合作政策与流程说明
- 建筑工程质量验收记录表填写标准
- 信息服务业的大数据价值评估方法-洞察及研究
- 畜牧养殖业对周边生态系统的影响-洞察及研究
- 2025影视演出经纪居间合同正规范本
- 对外投资管理知识培训
- 《早读是需要激情的!》主题班会课件
- 道闸操作安全培训课件
- 普惠金融赋能乡村振兴的实践探索和政策建议-福建省安溪县为例
- 2025年质量月知识竞赛题库(附答案)
- 酒店电气使用安全培训课件
- 生猪订购合同书范本3篇
- 2025年妇产科学科宫颈癌筛查常见问题考试答案及解析
- 耕地占用税培训课件
- 110kV变电站及110kV输电线路运维投标技术方案
评论
0/150
提交评论