基于Spring框架应用的权限控制系统的研究和实现_第1页
基于Spring框架应用的权限控制系统的研究和实现_第2页
基于Spring框架应用的权限控制系统的研究和实现_第3页
基于Spring框架应用的权限控制系统的研究和实现_第4页
基于Spring框架应用的权限控制系统的研究和实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Spring框架应用的权限控制系统的研究和实现摘要Spring框架是一个优秀的多层J2EE系统框架,Spring本身没有提供对系统的平安性支持。Aegi是基于SpringI和AP机制实现的一个平安框架。本文讨论了Aegi平安框架中各部件之间的交互,并通过扩展Aegi数据库设计来实现基于Spring框架的应用的平安控制方法。关键词Spring;Aegi;认证;受权1引言近年来,随着Internet技术的迅猛开展,计算机网络已深化到了人们的工作、学习和日常生活中,于是,怎样构建平安的eb应用也成为了当前最热门的话题。Spring是一个基于IInversinfntrl和APAspetriente

2、dPrgraing的构架多层J2EE应用系统的框架。Spring框架正在以其优良的特性吸引了越来越多的开发人员的关注,并在大量的系统开发中被使用。然而,现有的Spring框架本身并没有提供对系统平安性的支持,本文通过介绍一种可用于Spring框架中的平安框架Aegi,并对在Spring框架中使用Aegi实现平安用户认证和资源受权控制进展了较深化的研究和扩展,同时给出了可行的解决方案。2.1spring框架Spring框架是由penSure开发的一个优秀的多层J2EE系统框架,它为企业级应用提供了一个非常轻量级的解决方案,大大地降低了应用开发的难度与复杂度,进步了开发的速度。Spring框架的核

3、心是I和AP。I是一种设计形式,即I形式。I形式进一步降低了类之间的耦合度,并且改变了传统的对象的创立方法,实现了一种配置式的对象管理方式,Spring框架中由I容器负责配置性的对象的管理。I形式极大的进步了系统开发与维护的灵敏性。AP是一种编程形式,它是从系统的横切面关注问题。传统的面向对象编程P主要从系统的垂直切面对问题进展关注,对于系统的横切面关注很少,或者说很难关注,这样当考虑到系统的平安性、日志、事务以及其他企业级效劳时,P就无能为力了,只能在所有相关类中参加类似的系统效劳级的代码。AP为解决系统级效劳问题提供了一种很好的方法。AP将系统效劳分解成方面对待,并为类提供一种声明式系统效

4、劳方式。Java类不需要知道日志效劳的存在也不需要考虑相关的代码。所以,用AP编写的应用程序是松耦合的,代码的复用性就进步了。2.2Aegi平安框架借助于Spring框架,开发者可以快速构建构造良好的EB应用,但现有的Spring框架本身没有提供平安相关的解决方案。同样来自于penSure社区的Aegi平安框架为实现基于Spring框架的EB应用的平安控制提供了一个很好的解决方案。Aegi本身就是利用Spring提供的I和AP机制实现的一个平安框架,它将平安性效劳作为J2EE平台中的系统级效劳,以APAspet形式发布。所以借助于Aegi平安框架,开发者可以在Spring使能应用中采用声明式方

5、式实现平安控制。Aegi平安框架主要由平安管理对象、拦截器以及平安控制管理组件组成。平安管理对象是系统可以进展平安控制的实体,Aegi框架主要支持方法和URL恳求两类平安管理对象;拦截器是Aegi中的重要部件,用来实现平安控制恳求的拦截,针对不同的平安管理对象的平安控制恳求使用不同的拦截器进展拦截;平安控制管理部件是实际实现各种平安控制的组件,对被拦截器拦截的恳求进展平安管理与控制,主要组件包括实现用户身份认证的Authentiatinanager、实现用户受权的AessDeisinanager以及实现角色转换的RunAsanager。平安管理对象、拦截器以及平安控制管理组件三者关系如图1所示

6、。3.1分析系统平安性需求首先,需要明确进展平安控制的对象,可为业务方法和URL资源。其次,需要进一步明确,系统身份认证资料和资源受权信息的数据持久化形式。3.2Aegi平安系统数据库设计在Aegi框架中支持多种平安信息的持久化方式,可以在配置文件中配置或存放在关系数据库。由于在实际应用中,需求是经常发生变化的。所以,在配置文件中配置是满足不了实际应用需求的。然而,Aegi本身对权限表的设计非常简单,users表usernae,passrd,enabled和authrities表usernae,authrity,这样简单的设计肯定无法适用复杂的权限需求。为理解决权限管理的复杂性,在这里引入了r

7、le角色的概念,使得用户和权限别离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵敏地支持平安策略。同时,为了更好地配合Aegi平安框架,还引入resure资源的概念,资源可分为URL和FUNTIN方法两种,一个权限可以对应多个资源。详细的数据库设计见图2。图1平安管理对象,拦截器和平安管理组件交互图图2Aegi平安控制系统数据库设计3.3认证管理器,受权管理器的配置实现系统的平安控制,首先需要对系统的平安管理器和受权管理器进展配置,系统进展认证和受权需要获取平安信息,Aegi本身提供了对认证信息的获取机制,在实现认证与受权过程中,系统将主动根据配制信息和相应的信息解释平安信息的

8、读龋图3给出了一个将用户平安信息存储在数据库中的认证管理器的配置示意图。对应于图示的XL配置文件的代码如下:/*配置数据库datasure和Aegi的jdbDa*/prpertynae=driverlassNaevalue$jdb.driverlassNae/value/prpertyprpertynae=urlvalue$jdb.url/value/prperty图3认证管理器配制示意图prpertynae=usernaevalue$jdb.usernae/value/prpertyprpertynae=passrdvalue$jdb.passrd/value/prperty/beanprp

9、ertynae=dataSurerefbean=dataSure/prperty/bean/*配置用户信息的加密算法*/beanid=passrdEnder/*配置缓存有效时间*/bean/*配置daAuthentiatinPrvider*/beanid=daAuthentiatinPrviderprpertynae=authentiatinDareflal=JdbDaIpl/prpertyprpertynae=passrdEnderreflal=passrdEnder/prpertyprpertynae=userahereflal=userahe/prperty/bean/*配置认证管理器*

10、/prpertynae=prviderslistreflal=daAuthentiatinPrvider/list/prperty/bean受权管理器的配置方法与认证管理器的配置根本类似,这里不再讨论。3.4平安恳求拦截器的配置以上配置完成后,就需要配置平安拦截器。不同的平安管理对象需要使用不同的平安拦截器。对于方法级的平安认证需要使用的拦截器为ethdSeurityIntereptr,而应用于URL资源的平安拦截器为FilterSeurityIntereptr。其中,ethdSeurityIntereptr拦截器是借助于SpringAp实现的,而FilterSeurityIntereptr拦

11、截器是借助于ServletFilter实现的。本文以URL资源恳求的平安拦截器为例说明配置情况。由于URL资源恳求平安拦截是借助于过滤器进展的。因此首先要配置AegiServlet过滤器。过滤器类似于APArund装备,实如今eb资源调用前后进展的一些操作6种过滤器,他们依次构成Servlet过滤器链,依次处理客户恳求。需要注意的是过滤器配置的顺序是不能交换的,当不需要使用某个过滤器时,可直接将其删除和注释。过滤器在eb.xl中配置形式为filterfilter-naeAegi RequestSeurityFilter/filter-naeinit-parapara-naetargetlass

12、/para-naepara-value/para-value/init-para/filterfilter-appingfilter-naeAigi RequestSeurityFilter/filter-naeurl-pattern/*/url-pattern/filter-apping在springappliatinntext.xl文件中的配置形式为beanid=seurityEnfreentFilterlass=prpertynae=filterSeurityIntereptrrefbean=filterInvatinInteeptr/prpertyprpertynae=authenti

13、atinEntryPintrefbean=authentiatinPressingFilterEntryPint/prperty以上代码是SeurityEnfreentFilter的配置,该过滤器对用户是否有权访问eb资源作出最后的决定。其它的过滤器的配置类同。配置完过滤器后,需要对拦截器FilterSeurityIntereptr进展配置,beanid=filterInvatinIntereptrlass=prpertynae=authenuserahetiatinanager1prpertynae=aessDeisinanagerprpertynae=bjetDefinitinSurere

14、flal=filterbjetDefinitinSure/prpertybeanid=filterbjetDefinitinSurenstrutr-argrefbean=jdbTeplate/nstrutr-arg/beanbjetDefinitinSure属性定义了那些受保护的URL资源,其中引用了一个本地对象filterbjetDefinitinSure。filterbjetDefinitinSure类从数据库中读取需要保护的URL平安信息,它扩展了PathBasedFilterInvatinDefinitinap类。同样,实现了另外一个ethdbjetDefinitinSure类从数据库中读取需要保护的FUNTIN资源,它扩展了ethdDefinitinap类。限于篇幅,在这里就不列出详细实现的源代码。beanid=ethdbjetDefinitinSurenstrutr-argrefbe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论