实现基于Spring框架应用的权限控制系统_第1页
实现基于Spring框架应用的权限控制系统_第2页
实现基于Spring框架应用的权限控制系统_第3页
全文预览已结束

下载本文档

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

文档简介

1、实现基于Spring框架应用的权限控制系统效劳时,P就无能为力了,只能在所有相关类中参加类似的系统效劳级的代码。AP为解决系统级效劳问题提供了一种很好的方法。AP将系统效劳分解成方面对待,并为类提供一种声明式系统效劳方式。Java类不需要知道日志效劳的存在也不需要考虑相关的代码。所以,用AP编写的应用程序是松耦合的,代码的复用性就进步了。2、Aegi平安框架借助于Spring框架,开发者可以快速构建构造良好的EB应用,但现有的Spring框架本身没有提供平安相关的解决方案。同样来自于penSure社区的Aegi平安框架为实现基于Spring框架的EB应用的平安控制提供了一个很好的解决方案。Ae

2、gi本身就是利用Spring提供的I和AP机制实现的一个平安框架,它将平安性效劳作为J2EE平台中的系统级效劳,以APAspet形式发布。所以借助于Aegi平安框架,开发者可以在Spring使能应用中采用声明式方式实现平安控制。Aegi平安框架主要由平安管理对象、拦截器以及平安控制管理组件组成。平安管理对象是系统可以进展平安控制的实体,Aegi框架主要支持方法和URL恳求两类平安管理对象;拦截器是Aegi中的重要部件,用来实现平安控制恳求的拦截,针对不同的平安管理对象的平安控制恳求使用不同的拦截器进展拦截;平安控制管理部件是实际实现各种平安控制的组件,对被拦截器拦截的恳求进展平安管理与控制,主

3、要组件包括实现用户身份认证的Authentiatinanager、实现用户受权的AessDeisinanager以及实现角色转换的RunAsanager。平安管理对象、拦截器以及平安控制管理组件三者关系如图1所示。Aegi平安框架在基于Spring框架的系统中的应用1、分析系统平安性需求首先,需要明确进展平安控制的对象,可为业务方法和URL资源。其次,需要进一步明确,系统身份认证资料和资源受权信息的数据持久化形式。2、Aegi平安系统数据库设计在Aegi框架中支持多种平安信息的持久化方式,可以在配置文件中配置或存放在关系数据库。由于在实际应用中,需求是经常发生变化的。所以,在配置文件中配置是满

4、足不了实际应用需求的。然而,Aegi本身对权限表的设计非常简单,users表usernae,passrd,enabled和authrities表usernae,authrity,这样简单的设计肯定无法适用复杂的权限需求。为理解决权限管理的复杂性,在这里引入了rle角色的概念,使得用户和权限别离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵敏地支持平安策略。同时,为了更好地配合Aegi平安框架,还引入resure资源的概念,资源可分为URL和FUNTIN方法两种,一个权限可以对应多个资源。详细的数据库设计见图2。图1平安管理对象,拦截器和平安管理组件交互图图2Aegi平安控制系统

5、数据库设计3、认证管理器,受权管理器的配置实现系统的平安控制,首先需要对系统的平安管理器和受权管理器进展配置,系统进展认证和受权需要获取平安信息,Aegi本身提供了对认证信息的获取机制,在实现认证与受权过程中,系统将主动根据配制信息和相应的信息解释平安信息的读龋图3给出了一个将用户平安信息存储在数据库中的认证管理器的配置示意图。对应于图示的XL配置文件的代码如下:/*配置数据库datasure和Aegi的jdbDa*/beanid=dataSurelass=prpertynae=driverlassNaevalue$jdb.driverlassNae/value/prpertyprpertyn

6、ae=urlvalue$jdb.url/value/prperty图3认证管理器配制示意图受权管理器的配置方法与认证管理器的配置根本类似,这里不再讨论。4、平安恳求拦截器的配置以上配置完成后,就需要配置平安拦截器。不同的平安管理对象需要使用不同的平安拦截器。对于方法级的平安认证需要使用的拦截器为ethdSeurityIntereptr,而应用于URL资源的平安拦截器为FilterSeurityIntereptr。其中,ethdSeurityIntereptr拦截器是借助于SpringAp实现的,而FilterSeurityIntereptr拦截器是借助于ServletFilter实现的。本文以

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

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

9、nae=aessDeisinanagerprpertynae=bjetDefinitinSurebjetDefinitinSure属性定义了那些受保护的URL资源,其中引用了一个本地对象filterbjetDefinitinSure。filterbjetDefinitinSure类从数据库中读取需要保护的URL平安信息,它扩展了PathBasedFilterInvatinDefinitinap类。同样,实现了另外一个ethdbjetDefinitinSure类从数据库中读取需要保护的FUNTIN资源,它扩展了ethdDefinitinap类。限于篇幅,在这里就不列出详细实现的源代码。完毕语由于Spring在越来越多的工程中的应用,因

温馨提示

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

评论

0/150

提交评论