資源描述:
《實現(xiàn)基于spring框架應用的權限控制系統(tǒng)》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、實現(xiàn)基于Spring框架應用的權限控制系統(tǒng)摘要Spring框架是一個優(yōu)秀的多層J2EE系統(tǒng)框架,Spring本身沒有提供對系統(tǒng)的安全性支持。Acegi是基于SpringIOC和AOP機制實現(xiàn)的一個安全框架。本文探討了Acegi安全框架中各部件之間的交互,并通過擴展Acegi數(shù)據(jù)庫設計來實現(xiàn)基于Spring框架的應用的安全控制方法。 關鍵詞Spring;Acegi;認證;授權 引言 近年來,隨著Inter技術的迅猛發(fā)展,計算機X絡已深入到了人們的工作、學習和日常生活中,于是,怎樣構建安全的ming)的構架多層J2EE應用系統(tǒng)的框架。Sprin
2、g框架正在以其優(yōu)良的特性吸引了越來越多的開發(fā)人員的關注,并在大量的系統(tǒng)開發(fā)中被使用。然而,現(xiàn)有的Spring框架本身并沒有提供對系統(tǒng)安全性的支持,本文通過介紹一種可用于Spring框架中的安全框架Acegi,并對在Spring框架中使用Acegi實現(xiàn)安全用戶認證和資源授權控制進行了較深入的研究和擴展,同時給出了可行的解決方案?! pring框架和Acegi安全框架介紹 1、spring框架 Spring框架是由OpenSource開發(fā)的一個優(yōu)秀的多層J2EE系統(tǒng)框架,它為企業(yè)級應用提供了一個非常輕量級的解決方案,大大地降低了應用開發(fā)的難度與
3、復雜度,提高了開發(fā)的速度?! pring框架的核心是IoC和AOP。IoC是一種設計模式,即IoC模式。IoC模式進一步降低了類之間的耦合度,并且改變了傳統(tǒng)的對象的創(chuàng)建方法,實現(xiàn)了一種配置式的對象管理方式,Spring框架中由IoC容器負責配置性的對象的管理。IoC模式極大的提高了系統(tǒng)開發(fā)與維護的靈活性?! OP是一種編程模式,它是從系統(tǒng)的橫切面關注問題。傳統(tǒng)的面向對象編程OOP主要從系統(tǒng)的垂直切面對問題進行關注,對于系統(tǒng)的橫切面關注很少,或者說很難關注,這樣當考慮到系統(tǒng)的安全性、日志、事務以及其他企業(yè)級服務時,OOP就無能為力了,只能在所有
4、相關類中加入類似的系統(tǒng)服務級的代碼。AOP為解決系統(tǒng)級服務問題提供了一種很好的方法。AOP將系統(tǒng)服務分解成方面看待,并為類提供一種聲明式系統(tǒng)服務方式。Java類不需要知道日志服務的存在也不需要考慮相關的代碼。所以,用AOP編寫的應用程序是松耦合的,代碼的復用性就提高了。 2、Acegi安全框架 借助于Spring框架,開發(fā)者能夠快速構建結構良好的anager、實現(xiàn)用戶授權的AccessDecisionManager以及實現(xiàn)角色轉換的RunAsManager。安全管理對象、攔截器以及安全控制管理組件三者關系如圖1所示?! cegi安全框架在基
5、于Spring框架的系統(tǒng)中的應用 1、分析系統(tǒng)安全性需求 首先,需要明確進行安全控制的對象,可為業(yè)務方法和URL資源?! ∑浯?,需要進一步明確,系統(tǒng)身份認證資料和資源授權信息的數(shù)據(jù)持久化形式。由于URL資源請求安全攔截是借助于過濾器進行的。因此首先要配置AcegiServlet過濾器。過濾器類似于AOPAround裝備,實現(xiàn)在l中配置形式為<filter>?。糵ilter-name>AcegiHTTPRequestSecurityFilter</filter-name>?。糵ilter-class>org.acegisecurity.util
6、.FilterToBeanProxy</filter-class>?。糹nit-param> ?。紁aram-name>targetClass</param-name> <param-value> Org.acegisecurity.intercept.entFilter ?。?param-value>?。?init-param></filter><filter-mapping> <filter-name>AcigiHTTPRequestSecurityFilter</filter-name>?。紆rl-pattern>/*</url-pa
7、ttern></filter-mapping> 在springapplicationContext.xml文件中的配置形式為<beanid=”securityEnforcementFilter”class=””>?。紁ropertyname=”filterSecurityInterceptor”> ?。紃efbean=”filterInvocationInteceptor”/>?。?property>?。紁ropertyname=”authenticationEntryPoint”> ?。紃efbean=”authenticationProces
8、singFilterEntryPoint”/>?。?property>以上代碼是SecurityEnforcementFilter的配置