自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Acegi安全框架在基于Spring框架應(yīng)用

開發(fā) 后端
Spring框架是一個優(yōu)秀的多層J2EE系統(tǒng)框架,Spring本身沒有提供對系統(tǒng)的安全性支持。Acegi是基于Spring IOC 和 AOP機(jī)制實現(xiàn)的一個安全框架。本文探討了Acegi安全框架中各部件之間的交互,并通過擴(kuò)展Acegi數(shù)據(jù)庫設(shè)計來實現(xiàn)基于Spring框架的應(yīng)用的安全控制方法。

近年來,隨著Internet技術(shù)的迅猛發(fā)展,計算機(jī)網(wǎng)絡(luò)已深入到了人們的工作、學(xué)習(xí)和日常生活中,于是,怎樣構(gòu)建安全的web應(yīng)用也成為了當(dāng)前最熱門的話題。Spring是一個基于IoC(Inversion of Control)和AOP(Aspect Oriented Programming)的構(gòu)架多層J2EE應(yīng)用系統(tǒng)的框架。Spring框架正在以其優(yōu)良的特性吸引了越來越多的開發(fā)人員的關(guān)注,并在大量的系統(tǒng)開發(fā)中被使用。然而,現(xiàn)有的Spring框架本身并沒有提供對系統(tǒng)安全性的支持,本文通過介紹一種可用于Spring框架中的安全框架Acegi,并對在 Spring框架中使用Acegi實現(xiàn)安全用戶認(rèn)證和資源授權(quán)控制進(jìn)行了較深入的研究和擴(kuò)展,同時給出了可行的解決方案。

Spring框架和Acegi安全框架介紹

1、spring 框架

Spring框架是由Open Source開發(fā)的一個優(yōu)秀的多層J2EE系統(tǒng)框架,它為企業(yè)級應(yīng)用提供了一個非常輕量級的解決方案,大大地降低了應(yīng)用開發(fā)的難度與復(fù)雜度,提高了開發(fā)的速度。

Spring框架的核心是IoC和AOP。IoC是一種設(shè)計模式,即IoC模式。IoC模式進(jìn)一步降低了類之間的耦合度,并且改變了傳統(tǒng)的對象的創(chuàng)建方法,實現(xiàn)了一種配置式的對象管理方式,Spring框架中由IoC容器負(fù)責(zé)配置性的對象的管理。IoC模式極大的提高了系統(tǒng)開發(fā)與維護(hù)的靈活性。

AOP是一種編程模式,它是從系統(tǒng)的橫切面關(guān)注問題。傳統(tǒng)的面向?qū)ο缶幊蘋OP主要從系統(tǒng)的垂直切面對問題進(jìn)行關(guān)注,對于系統(tǒng)的橫切面關(guān)注很少,或者說很難關(guān)注,這樣當(dāng)考慮到系統(tǒng)的安全性、日志、事務(wù)以及其他企業(yè)級服務(wù)時,OOP就無能為力了,只能在所有相關(guān)類中加入類似的系統(tǒng)服務(wù)級的代碼。AOP為解決系統(tǒng)級服務(wù)問題提供了一種很好的方法。AOP將系統(tǒng)服務(wù)分解成方面看待,并為類提供一種聲明式系統(tǒng)服務(wù)方式。Java類不需要知道日志服務(wù)的存在也不需要考慮相關(guān)的代碼。所以,用AOP編寫的應(yīng)用程序是松耦合的,代碼的復(fù)用性就提高了。

2、Acegi 安全框架

借助于Spring框架,開發(fā)者能夠快速構(gòu)建結(jié)構(gòu)良好的WEB應(yīng)用,但現(xiàn)有的Spring框架本身沒有提供安全相關(guān)的解決方案。同樣來自于Open Source 社區(qū)的Acegi安全框架為實現(xiàn)基于Spring框架的WEB應(yīng)用的安全控制提供了一個很好的解決方案。Acegi本身就是利用Spring提供的IoC 和AOP機(jī)制實現(xiàn)的一個安全框架,它將安全性服務(wù)作為J2EE平臺中的系統(tǒng)級服務(wù),以AOP Aspect形式發(fā)布。所以借助于Acegi安全框架,開發(fā)者能夠在Spring使能應(yīng)用中采用聲明式方式實現(xiàn)安全控制。

Acegi 安全框架主要由安全管理對象、攔截器以及安全控制管理組件組成。安全管理對象是系統(tǒng)可以進(jìn)行安全控制的實體,Acegi框架主要支持方法和URL請求兩類安全管理對象;攔截器是Acegi中的重要部件,用來實現(xiàn)安全控制請求的攔截,針對不同的安全管理對象的安全控制請求使用不同的攔截器進(jìn)行攔截;安全控制管理部件是實際實現(xiàn)各種安全控制的組件,對被攔截器攔截的請求進(jìn)行安全管理與控制,主要組件包括實現(xiàn)用戶身份認(rèn)證的 AuthenticationManager、實現(xiàn)用戶授權(quán)的AccessDecisionManager 以及實現(xiàn)角色轉(zhuǎn)換的RunAsManager。安全管理對象、攔截器以及安全控制管理組件三者關(guān)系。

Acegi安全框架在基于Spring框架的系統(tǒng)中的應(yīng)用

1、分析系統(tǒng)安全性需求

首先,需要明確進(jìn)行安全控制的對象,可為業(yè)務(wù)方法和URL資源。

其次,需要進(jìn)一步明確,系統(tǒng)身份認(rèn)證資料和資源授權(quán)信息的數(shù)據(jù)持久化形式。

2、Acegi安全系統(tǒng)數(shù)據(jù)庫設(shè)計

在Acegi框架中支持多種安全信息的持久化方式,可以在配置文件中配置或存放在關(guān)系數(shù)據(jù)庫。由于在實際應(yīng)用中,需求是經(jīng)常發(fā)生變化的。所以,在配置文件中配置是滿足不了實際應(yīng)用需求的。然而,Acegi本身對權(quán)限表的設(shè)計非常簡單,users表{username,password,enabled} 和authorities表{username,authority},這樣簡單的設(shè)計肯定無法適用復(fù)雜的權(quán)限需求。為了解決權(quán)限管理的復(fù)雜性,在這里引入了role(角色)的概念,使得用戶和權(quán)限分離,一個用戶擁有多個角色,一個角色擁有多個相應(yīng)的權(quán)限,這樣就更靈活地支持安全策略。

【編輯推薦】

  1. Spring Batch 2.0的新特性
  2. 簡單介紹Spring osgi
  3. Spring OSGi的整合
  4. 在Spring中配置Glassfish JPA
  5. 解決Spring2.0向spring2.5遷移的問題
責(zé)任編輯:佚名 來源: laixx
相關(guān)推薦

2009-06-22 16:19:40

Acegi安全系統(tǒng)JSF

2024-02-21 08:16:05

NeMoSpeech AI大模型

2024-12-18 10:20:00

攜程鴻蒙開發(fā)

2012-05-10 09:15:47

2012-05-10 10:00:43

2011-09-05 14:42:01

PhoneGap框架

2024-01-11 15:54:55

eTS語言TypeScript應(yīng)用開發(fā)

2022-06-09 07:27:14

JavaSpring容器

2022-05-30 11:17:44

Spring容器配置

2009-06-29 17:17:57

Spring

2022-06-07 07:58:45

SpringSpring AOP

2018-12-02 06:58:18

NIST網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全框架

2013-07-16 09:15:29

2009-06-18 14:26:51

2009-06-19 14:49:43

Spring框架

2009-06-17 14:43:47

Spring框架Spring事務(wù)管理

2009-06-18 14:18:23

Spring secu

2024-07-05 11:22:39

2022-05-30 09:32:07

Spring容器

2015-06-24 09:25:51

應(yīng)用框架
點贊
收藏

51CTO技術(shù)棧公眾號