admin 管理员组文章数量: 887021
2024年1月12日发(作者:旅游app排行榜前十名)
第8卷第1期 南京工程学院学报(自然科学版) Joumal of Nanjing Institute of Technology(Natural Science Edition) Vo1.8,No.1 Mar.,2010 2010年3月 文章编号:1672—2558(2010)O1—0028一o5 基于MVC模式的AOP访问控制技术研究 高觐悦 ,张功萱 (1.苏州市职业大学计算机工程系,江苏 苏州215104; 2.南京理工大学计算机科学与技术学院,江苏 南京210094) 摘要:对基于MVC模式的J2EE应用访问控制进行了研究,提出一种基于MVC模式的AOP访问控制框架 MAACF,给出框架的功能结构,介绍访问控制横切关注点的设计与实现,构建出一种应用MAACF的J2EE架构.系 统运行结果表明,MAACF有效提高了分布式企业级应用的安全标准. 关键词:模型视图控制模式;面向方面编程;访问控制 中图分类号:TP31 1 Study on AOP Access Control Technique Based on MVC Pattern GAO Jin—yue ,ZHANG Gong—xuan (1.Dept.of Computer Engineering,Suzhou Vocational University,Suzhou 215 104,China; 2.School of Computer Science and Technology,Nanjing University of Science andTechnology,Nanjing 2 10094,China) Abstract:By studying the application of J2EE access control based on MVC pattern,MAACF,an AOP access control framework based on MVC pattern,was proposed,along with its function modules.This paper also intruduees the design and implementation of crosscutting concerns of access controls.Then a J2EE model which made use of MAACF was produced.The results show that the security standard in distributed enterprise application has been raised by using MAACF. Key words:model view control mode;aspect—oriented programming;access control 目前,基于Web的应用软件特别是J2EE的开发过程中,还存在着许多不尽人意的地方….基于MVC 模式的J2EE多层Web框架逐渐成为开发企业级应用的主流架构.访问控制是网络安全的重要组成部分, 对于保证系统安全、稳定运行起到至关重要的作用,而身份认证和授权是访问控制的基础,也是实现访问 控制的核心手段 J. 如何将访问控制与基于MVC模式的J2EE应用有机结合,实现高效、灵活和细粒度的访问控制,已经 成为开发者面临的一个主要问题.J2EE的访问控制从其基本定义是基于角色的,并在一定程度上体现了 与RBAC(基于角色访问控制)模型的联系.应用RBAC可以简化权限管理,但若使用传统面向对象技术实 现则存在一定缺陷,表现为:当用户进入每个视图资源人口点时,系统均需进行用户身份的判定和访问权 限的校验,这就需要在每个实体类里嵌人大量的访问控制代码.这种做法虽然并未引起权限扩散和降低访 问控制等级,但由于系统被控制的实体类很多,大量重复的代码将导致系统难于理解和维护,容易发生代 收稿日期:2009~07—0l;修回日期:2009—10—10 基金项目:国家自然科学基金资助项目(60850002) 作者简介:高觐悦,硕士,讲师,研究方向为计算机应用腰Web数据库技术 E-mail:gJy@jSSVC.edu.cn
第8卷第1期 高觐悦,等:基于MVC模式的AOP访问控制技术研究 29 码纠缠和代码分散现象,降低了可扩展和可复用的软件标准. 面向方面编程AOP南Xerox PARC的Gregor Kiczales等人于1997年提出f3].AOP为开发者提供了一 种描述横切关注点的机制,并能够自动将横切关注点织人到面向对象的软件系统,体现了“分而治之”的 思想 .AOP的出现弥补了OOP横切关注点的不足,与OOP互相配合、互相补充,是程序设计技术发展史 上的又一次革命. 本文通过AOP思想解决了RBAC问题,提出了一种基于MVC模式的AOP访问控制框架MAACF (An AOP Access Control Framework based on MVC Pattern).该框架弥补了传统OOP不能对跨模块横切关 注点集中建模的缺陷,使得系统在重用性、灵活性与可扩展性方面得到进一步改进与提高. MAACF功能结构 MAACF共分为5大功能模块:会话管理、身份认证、授权、安全审计及性能监测模块.身份认证模块以 JAAS PAM结构为标准,采用基于表单的Web客户端认证,登录模块分别支持口令和X.509证书认证,关 系数据库负责存放登录信息,密钥库(KeyStore)负责证书的生成和提取;授权模块基于JAAs设计,分别以 关系数据库和XML策略文件为基础判断认证用户是否具有权限以访问特定资源;会话管理模块负责维护 安全会话信息,在身份认证与授权模块间传递会话信息,是访问控制过程顺利实现的保证;安全审计模块 负责跟踪身份认证、授权、文件访问以及各种异常抛出的Et志信息,供管理员进行安全审计;性能监测模块 主要从计算性能和内存消耗方面测试各种安全事件发生时系统的时间与空问开销. 系统以MVC模式作为实现基础,使用控制器Struts Action调用具体功能模块,依靠ActionForm建立 与Struts扩展标签的映射关系,以获得各种身份认证信息.客户端在认证信息提交前生成消息摘要,保证 信息传输过程的机密性与完整性.视图的各种JSP页面作为授权过程被保护的访问资源.模型建立起基于 对象/关系映射的各种POJO对象,通过Hibernate映射文件和DAO对象完成对关系数据库的持久化管理, 提高整个系统的性能和可靠性.系统结构如图1所示. 会话管理模块 0/R 身份认证模块 、L—一 POJO Mapping DBMS r—— Hibemate Struts 授权模块 Action I Kevst0re 。 审计管理模块 l ’ 性能监测模块 一r—一 图1 MAACF系统结构图 通过对系统功能模块的分析,发现授权、日志跟踪和性能监测的连接点分散在各种Action之巾,属于 横切关注点.系统应使用AOP技术进行建模和消息拦截.通过Aspect封装横切逻辑,当连接点激活时,切 入点将其捕获并触发通知执行横切逻辑,执行完毕后直接返回. 2 AoP建模访问控制横切关注点 2.1授权模块设计与实现 基于授权的横切特性,采用AOP技术对授权横切关注点进行建模,同时对JAAS授权部分进行扩展和
南京工程学院学报(自然科学版) 2010年3月 改进.通过对主体一角色一权限的映射关系分析,设计了基于关系数据库和XML文件的访问策略,用于判 断认证用户是否具备访问Struts视图的相应权限,从而实现对MVC模式下资源的访问控制.授权模块结 构如图2所示. Policy 《接口》 Principal f AuthPolicv f AuthPrincipal 《接口》 PrivilegedAction ACCeSSAction AccessAspect AuthorizationAspect —pointcut +adcive() 图2授权模块结构图 1)Auth0rizatj0nAspect.授权方面,当Stutrs Action连接点激活时触发通知执行,执行完毕后控制返回. 该方面封装了授权部分的主要业务逻辑,依赖于特权动作(PrivilegedAction)和主题(Subject),以它们为参 数执行Subject.doAsPrivileged()方法,完成对用户的授权. 2)AccessAction.访问动作类,该类实现了PrivilegedAction接口,将认证后的Principal集合与获得的 页面路径uri共同作为参数,执行AuthorizationUtil的相应方法,判断Principal是否具有特定权限以访问 Struts页面. 3)AuthorizationUtil.授权实用类,该类的主要作用是根据访问策略判断主体(Principa1)是否具有相应 访问权限. 4)AuthPolicy.授权策略类,该类继承自Policy抽象类.根据课题特点和RBAC理论,主体(Principa1) 表示身份标志,对应角色(Role),也就是可以通过角色得到权限(Permission).因此AuthPolicy设计了相应 方法,根据主体一角色一权限的映射关系分别从关系数据库和XML文件取得权限集合. 这里给出Auth0rizationAspect切人点和通知的具体实现,说明对Stutrs Action的拦截原理和对页面资 源的访问控制 J.切人点声明如下: pointcut authorization(ActionMapping mapping,ActionForm form,HttpServletRequest request, HttpServletResponse response):execution(public ActionForward enter (ActionMapping,AetionForm, HttpServletRequest,HttpServletResponse))&&args(mapping,orfm,request,response) &&target(DispatchAction); 上述代码通过切入点“authorization”实现了对连接点上下文的捕获.由于使用Struts Action的派生类
第8卷第1期 高觐悦,等:基于MVC模式的AOP访问控制技术研究 31 DispatchAction分发执行子方法,若使用“call”指示符,则会对DispatchAction的execute()方法的调用进行 匹配,这样,AspectJ无法完成对方法的拦截和通知的执行,因此这里使用“execution”指示符对 DispatchAction子方法的执行方式进行匹配,其作用域指定了匹配的子方法名和形参.这里使用“args”导人 连接点上下文环境,使用“target”限制匹配的作用范围. 通过对授权机制的分析,发现Auth0rizati0nAspect在DispatchAction连接点执行的前后均发生拦截,因此 选用around类型通知.该方法由会话信息得到subject对象,由连接点上下文request对象得到访问页面的 uri地址,将其作为构造器参数从而实例化AccessAction.通过调用Subject.doAsPrivileged(Subject, PrivilegedAction,AccessControlContext)方法执行授权.若授权通过,则通过proceed执行页面访问核心逻辑, 执行完毕该方法返回ActionForward;若授权无效,则在异常处理时通过ActionForward返回授权无效页面. 2.2安全审计模块设计与实现 安全审计模块包括对日志信息的跟踪记录、日志信息的浏览查询、日志信息维护等功能.其中跟踪事 件包括身份认证与授权的执行、敏感文件的访问等.基于上述考虑,安全审计模块总体结构如图3所示. 图3安全审计模块结构图 1)LogAspect.负责跟踪安全事件并记录日志信息.该方面用于捕获安全事件连接点,当连接点激活时触 发通知执行,记录事件执行情况,并通过日志关系的POJO对象I gVo,将日志记录储存至后台数据库. 2)AuthIxJgAspect.继承A LogAspect,利用切人点实现,在身份认证和授权等连接点激活时触发通知 执行日志跟踪横切关注点,将各类安全事件持久化进日志关系表,用于拦截认证授权连接点的执行.认证 授权通过时,记录执行情况;未通过时,记录事件的异常信息。 3)FileLogAspect.继承自LogAspect,并通过切人点捕获敏感文件访问连接点,通过通知将访问事件持 久化进日志关系表,随时监控敏感文件的访问,用于拦截敏感文件访问连接点执行. 4)Log—Display.负责客户端分页浏览和查询日志记录,便于管理员分析审计安全事件. 5)Log—Maintain.该类便于管理员日常维护日志记录. 3 MAACF的应用 在提出MAACF的基础上,对J2EE分层架构进行扩展与完善,构建一种应用MAACF的J2EE架构,并 应用于某企业信息网的设计和开发中,如图4所示.该架构基于B/S模型.表示层和业务逻辑层基于MVC 模式,视网包括JSP、ActionForm等;模型包括各类POJO对象,它们通过Hibernate ORM建立与数据库关系 表的关联,控制器由ActionServlet与Action实现,授权、安全审计等横切关注点通过织入产生弓Action的
32 南京工程学院学报(自然科学版) 2010年3月 混合代码,这种松耦合性使Action仅仅实现自身的核心关注点,而将横切关注点交由Aspect实现,且执行 方式对Action透明. 一 …一…………… I 客户层 .. .......... .... ..... 表示层 业务逻辑层 EIS层 图4 一种应用MAACF的J2EE架构图 应用MAACF的J2EE架构根据J2EE的分层特性,针对每层制定了具体的设计方案,其中对MVC模 式控制器Struts Action的改进最为突出.通过对MAACF安全服务的调用或拦截,控制器保证了在刷新用 户界面显示或更新模型对象状态之前完成必要的访问控制动作,提高了企业级应用的安全等级.业务逻辑 层通过Hibernate实现数据持久化,在运行和开发效率较JDBC和Entity Bean更具优势,通过数据缓存和 事务管理进一步优化了数据持久化性能. 4 结语 本文通过对AOP技术改进基于MVC模式访问控制的研究分析,提出了一种基于MVC模式的AOP 访问控制框架MAACF,将其应用于某企业信息网的设计开发,能够有效提高系统对于各类用户的访问控 制能力,使用户必须通过严格的身份认证过程,根据自身的角色类型才能获得使用各类房产信息服务的权 限,访问控制过程清晰严密.用户使用系统的安全记录通过13志跟踪储存在后台数据库.管理员通过对安 全事件的审计分析,能够找出系统非法使用证据,通过对薄弱环节的改进进一步增强系统抵御网络攻击的 能力.实践表明,该框架不仅达到了安全性、功能性、结构性与效率性的设计目标,而且能够有效提高分布 式企业级应用的安全标准,达到了较好的预期效果. 参考文献: [1]沈智芳.基于MVC的框架开发技术研究[J1.武汉船舶职业技术学院学报,2009,8(1):48—50,55. [2]伍建晖.基于角色的访问控制在J2EE中的研究及扩展[D].南京:南京理工大学,2006. [3]KICZALES G,LAMPING J,MENDHEKAR A,et aI.Aspect—Oriented Programming[c]//Proceedings ofthe 1st European Conference on Oh- ject—Oriented Programming.Finland:Springer—Verlag,1997:220—242. 、 [4]朱俭.面向方面编程(AOP)介绍[J].计算机工程,2004,30(S1):170—172. . [5]GRADECKI J D,LESIECKI N.Mastering AspeetJ:Aspect—Oriented Pmgranmfing in Java[M].Indianapolis:Wiley Publishing,Inc.,2003.
版权声明:本文标题:基于MVC模式的AOP访问控制技术研究_论文 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705049379h471199.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论