實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)

實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)

ID:11875733

大小:31.50 KB

頁數(shù):10頁

時(shí)間:2018-07-14

實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)_第1頁
實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)_第2頁
實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)_第3頁
實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)_第4頁
實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)_第5頁
資源描述:

《實(shí)現(xiàn)基于spring框架應(yīng)用的權(quán)限控制系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、實(shí)現(xiàn)基于Spring框架應(yīng)用的權(quán)限控制系統(tǒng)服務(wù)時(shí),OOP就無能為力了,只能在所有相關(guān)類中加入類似的系統(tǒng)服務(wù)級(jí)的代碼。AOP為解決系統(tǒng)級(jí)服務(wù)問題提供了一種很好的方法。AOP將系統(tǒng)服務(wù)分解成方面看待,并為類提供一種聲明式系統(tǒng)服務(wù)方式。Java類不需要知道日志服務(wù)的存在也不需要考慮相關(guān)的代碼。所以,用AOP編寫的應(yīng)用程序是松耦合的,代碼的復(fù)用性就提高了?! ?、Acegi安全框架  借助于Spring框架,開發(fā)者能夠快速構(gòu)建結(jié)構(gòu)良好的WEB應(yīng)用,但現(xiàn)有的Spring框架本身沒有提供安全相關(guān)的解決方案。同樣來自于OpenSource社區(qū)的A

2、cegi安全框架為實(shí)現(xiàn)基于Spring框架的WEB應(yīng)用的安全控制提供了一個(gè)很好的解決方案。Acegi本身就是利用Spring提供的IoC和AOP機(jī)制實(shí)現(xiàn)的一個(gè)安全框架,它將安全性服務(wù)作為J2EE平臺(tái)中的系統(tǒng)級(jí)服務(wù),以AOPAspect形式發(fā)布。所以借助于Acegi安全框架,開發(fā)者能夠在Spring使能應(yīng)用中采用聲明式方式實(shí)現(xiàn)安全控制?! cegi安全框架主要由安全管理對(duì)象、攔截器以及安全控制管理組件組成。安全管理對(duì)象是系統(tǒng)可以進(jìn)行安全控制的實(shí)體,Acegi框架主要支持方法和URL請(qǐng)求兩類安全管理對(duì)象;攔截器是Acegi中的重要部件

3、,用來實(shí)現(xiàn)安全控制請(qǐng)求的攔截,針對(duì)不同的安全管理對(duì)象的安全控制請(qǐng)求使用不同的攔截器進(jìn)行攔截;安全控制管理部件是實(shí)際實(shí)現(xiàn)各種安全控制的組件,對(duì)被攔截器攔截的請(qǐng)求進(jìn)行安全管理與控制,主要組件包括實(shí)現(xiàn)用戶身份認(rèn)證的AuthenticationManager、實(shí)現(xiàn)用戶授權(quán)的AccessDecisionManager以及實(shí)現(xiàn)角色轉(zhuǎn)換的RunAsManager。安全管理對(duì)象、攔截器以及安全控制管理組件三者關(guān)系如圖1所示。  Acegi安全框架在基于Spring框架的系統(tǒng)中的應(yīng)用  1、分析系統(tǒng)安全性需求  首先,需要明確進(jìn)行安全控制的對(duì)象,可為

4、業(yè)務(wù)方法和URL資源。  其次,需要進(jìn)一步明確,系統(tǒng)身份認(rèn)證資料和資源授權(quán)信息的數(shù)據(jù)持久化形式?! ?、Acegi安全系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)  在Acegi框架中支持多種安全信息的持久化方式,可以在配置文件中配置或存放在關(guān)系數(shù)據(jù)庫。由于在實(shí)際應(yīng)用中,需求是經(jīng)常發(fā)生變化的。所以,在配置文件中配置是滿足不了實(shí)際應(yīng)用需求的。然而,Acegi本身對(duì)權(quán)限表的設(shè)計(jì)非常簡(jiǎn)單,users表{username,password,enabled}和authorities表{username,authority},這樣簡(jiǎn)單的設(shè)計(jì)肯定無法適用復(fù)雜的權(quán)限需求。為了解

5、決權(quán)限管理的復(fù)雜性,在這里引入了role的概念,使得用戶和權(quán)限分離,一個(gè)用戶擁有多個(gè)角色,一個(gè)角色擁有多個(gè)相應(yīng)的權(quán)限,這樣就更靈活地支持安全策略。  同時(shí),為了更好地配合Acegi安全框架,還引入resource的概念,資源可分為URL和FUNCTION兩種,一個(gè)權(quán)限可以對(duì)應(yīng)多個(gè)資源。具體的數(shù)據(jù)庫設(shè)計(jì)見圖2。圖1安全管理對(duì)象,攔截器和安全管理組件交互圖圖Acegi安全控制系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)3、認(rèn)證管理器,授權(quán)管理器的配置  實(shí)現(xiàn)系統(tǒng)的安全控制,首先需要對(duì)系統(tǒng)的安全管理器和授權(quán)管理器進(jìn)行配置,系統(tǒng)進(jìn)行認(rèn)證和授權(quán)需要獲取安全信息,Acegi

6、本身提供了對(duì)認(rèn)證信息的獲取機(jī)制,在實(shí)現(xiàn)認(rèn)證與授權(quán)過程中,系統(tǒng)將主動(dòng)根據(jù)配制信息和相應(yīng)的信息解釋安全信息的讀取。圖3給出了一個(gè)將用戶安全信息存儲(chǔ)在數(shù)據(jù)庫中的認(rèn)證管理器的配置示意圖?! ?duì)應(yīng)于圖示的XML配置文件的代碼如下:/*配置數(shù)據(jù)庫datasource和Acegi的jdbcDao*/<beanid=”dataSource”class=””> <propertyname=”driverClassName”> ?。紇alue>${}</value> </property>?。紁ropertyname=”url”>  <value>${

7、}</value> </property>圖認(rèn)證管理器配制示意圖<propertyname=”username”>?。紇alue>${}</value></property><propertyname=”password”>?。紇alue>${}</value></property></bean><beanid=”jdbcDaoImpl”class=”roviders.”> <propertyname=”dataSource”> ?。紃efbean=”dataSource”/>?。?property></bean>/*配置用戶信息的

8、加密算法*/<beanid=”passwordEncoder”Class=””/>/*配置緩存有效時(shí)間*/<beanid=”userCache”class=”providers.”> …//這里對(duì)緩存有效時(shí)間進(jìn)行設(shè)置</bean>/*

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。