欢迎来到天天文库
浏览记录
ID:22710404
大小:55.50 KB
页数:5页
时间:2018-10-31
《实现基于spring框架应用的权限控制系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实现基于Spring框架应用的权限控制系统摘要Spring框架是一个优秀的多层J2EE系统框架,Spring本身没有提供对系统的安全性支持。Acegi是基于SpringIOC和AOP机制实现的一个安全框架。本文探讨了Acegi安全框架中各部件之间的交互,并通过扩展Acegi数据库设计来实现基于Spring框架的应用的安全控制方法。 关键词Spring;Acegi;认证;授权 引言 近年来,随着Inter技术的迅猛发展,计算机X络已深入到了人们的工作、学习和日常生活中,于是,怎样构建安全的ming)的构架多层J2EE应用系统的框架。Sprin
2、g框架正在以其优良的特性吸引了越来越多的开发人员的关注,并在大量的系统开发中被使用。然而,现有的Spring框架本身并没有提供对系统安全性的支持,本文通过介绍一种可用于Spring框架中的安全框架Acegi,并对在Spring框架中使用Acegi实现安全用户认证和资源授权控制进行了较深入的研究和扩展,同时给出了可行的解决方案。 Spring框架和Acegi安全框架介绍 1、spring框架 Spring框架是由OpenSource开发的一个优秀的多层J2EE系统框架,它为企业级应用提供了一个非常轻量级的解决方案,大大地降低了应用开发的难度与
3、复杂度,提高了开发的速度。 Spring框架的核心是IoC和AOP。IoC是一种设计模式,即IoC模式。IoC模式进一步降低了类之间的耦合度,并且改变了传统的对象的创建方法,实现了一种配置式的对象管理方式,Spring框架中由IoC容器负责配置性的对象的管理。IoC模式极大的提高了系统开发与维护的灵活性。 AOP是一种编程模式,它是从系统的横切面关注问题。传统的面向对象编程OOP主要从系统的垂直切面对问题进行关注,对于系统的横切面关注很少,或者说很难关注,这样当考虑到系统的安全性、日志、事务以及其他企业级服务时,OOP就无能为力了,只能在所有
4、相关类中加入类似的系统服务级的代码。AOP为解决系统级服务问题提供了一种很好的方法。AOP将系统服务分解成方面看待,并为类提供一种声明式系统服务方式。Java类不需要知道日志服务的存在也不需要考虑相关的代码。所以,用AOP编写的应用程序是松耦合的,代码的复用性就提高了。 2、Acegi安全框架 借助于Spring框架,开发者能够快速构建结构良好的anager、实现用户授权的AccessDecisionManager以及实现角色转换的RunAsManager。安全管理对象、拦截器以及安全控制管理组件三者关系如图1所示。 Acegi安全框架在基
5、于Spring框架的系统中的应用 1、分析系统安全性需求 首先,需要明确进行安全控制的对象,可为业务方法和URL资源。 其次,需要进一步明确,系统身份认证资料和资源授权信息的数据持久化形式。由于URL资源请求安全拦截是借助于过滤器进行的。因此首先要配置AcegiServlet过滤器。过滤器类似于AOPAround装备,实现在l中配置形式为<filter> <filter-name>AcegiHTTPRequestSecurityFilter</filter-name> <filter-class>org.acegisecurity.util
6、.FilterToBeanProxy</filter-class> <init-param> <param-name>targetClass</param-name> <param-value> Org.acegisecurity.intercept.entFilter </param-value> </init-param></filter><filter-mapping> <filter-name>AcigiHTTPRequestSecurityFilter</filter-name> <url-pattern>/*</url-pa
7、ttern></filter-mapping> 在springapplicationContext.xml文件中的配置形式为<beanid=”securityEnforcementFilter”class=””> <propertyname=”filterSecurityInterceptor”> <refbean=”filterInvocationInteceptor”/> </property> <propertyname=”authenticationEntryPoint”> <refbean=”authenticationProces
8、singFilterEntryPoint”/> </property>以上代码是SecurityEnforcementFilter的配置
此文档下载收益归作者所有