亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用SPRING SECURITY 3.0構(gòu)建SPRING+STRUTS+HIBERNATE應(yīng)用安全性的一種方法

        2012-11-04 02:44:42詹勁松劉吳文梁融凌
        長沙大學(xué)學(xué)報(bào) 2012年2期
        關(guān)鍵詞:福建師范大學(xué)計(jì)算機(jī)系福清

        詹勁松,劉吳文,梁融凌

        (福建師范大學(xué)福清分校數(shù)學(xué)與計(jì)算機(jī)系,福建福清 350300)

        利用SPRING SECURITY 3.0構(gòu)建SPRING+STRUTS+HIBERNATE應(yīng)用安全性的一種方法

        詹勁松,劉吳文,梁融凌

        (福建師范大學(xué)福清分校數(shù)學(xué)與計(jì)算機(jī)系,福建福清 350300)

        介紹了Spring Security3.0的認(rèn)證和權(quán)限控制以及Spring+Struts+Hibernate框架,并介紹了利用Spring Security3.0構(gòu)建Spring+Struts+Hibernate應(yīng)用安全性的一種方法.對直接使用Spring JDBC的方法進(jìn)行了比較.

        Spring Security 3.0;認(rèn)證;權(quán)限控制;Spring+Struts+Hiberante

        安全性是J2EE企業(yè)應(yīng)用的一個(gè)重要方面,是一個(gè)要從開發(fā)項(xiàng)目初期就應(yīng)該考慮的重要因素.認(rèn)證和權(quán)限控制是應(yīng)用層安全性的兩個(gè)主要領(lǐng)域.事實(shí)上,Spring security是基于Spring的企業(yè)應(yīng)用安全性的標(biāo)準(zhǔn).

        1 Spring Security 3.0

        Spring Security為基于spring的企業(yè)級應(yīng)用提供全面的安全性服務(wù).認(rèn)證和權(quán)限控制也是Spring Security要處理的兩個(gè)主要領(lǐng)域[1].

        在認(rèn)證層面上,Spring Security支持廣泛的認(rèn)證模型.這些認(rèn)證模型或者由第三方提供,或者由相關(guān)的標(biāo)準(zhǔn)團(tuán)體開發(fā),Spring Security也提供了自己的一組認(rèn)證設(shè)施.Spring security 3.0的認(rèn)證由 AuthenticationManager完成,AuthenticationManager調(diào)用 AuthenticationProvider進(jìn)行認(rèn)證.AuthenticatctionProvider可依賴注入U(xiǎn)serDetailsService.

        不管認(rèn)證如何進(jìn)行,Spring Security提供了一組深入的權(quán)限控制服務(wù).它主要面向三個(gè)領(lǐng)域:web請求的權(quán)限控制,方法調(diào)用的權(quán)限控制和單個(gè)對象實(shí)例訪問的權(quán)限控制[1].Spring Security 3.0權(quán)限控制由AbstractSecurityIntercpetor承擔(dān),AbstractSecurityInterceptor調(diào)用 AccessDecisionManager完成權(quán)限控制的最終決定.在通常情況下,AcessDecisionManager輪詢一系列的AcessDecisionVoter以做出授權(quán)決定.AbstractSecutityInterceptor調(diào)用 AcessDecisionManager在對象調(diào)用之前進(jìn)行權(quán)限控制,而AfterInvocationManager可以進(jìn)行調(diào)用后處理,每個(gè)AfterInvocationManager的實(shí)現(xiàn)可以修改返回的對象,或者拋出一個(gè)AcessDeniedException讓訪問無效.

        Spring Security的web設(shè)施完全基于標(biāo)準(zhǔn)的Servlet過濾器,處理 HttpServletRequest和 HttpServletResponse.Spring Security內(nèi)部保持一個(gè)過濾器鏈,每個(gè)過濾器都有獨(dú)特的作用,根據(jù)服務(wù)的需要,在配置中增加、移除過濾器.正是這些過濾器調(diào)用相應(yīng)的對象,實(shí)現(xiàn)了Spring Security的認(rèn)證和權(quán)限控制[2].在使用Spring Security的web應(yīng)用中,關(guān)鍵的過濾器有FilterSecurityInterceptor、ExceptionTranslationFilter、SecurityContextPersistenceFilter和 UsernamePasswordAuthenticationFilter等.前三個(gè)過濾器總是出現(xiàn)在Spring Security Web應(yīng)用配置中,不能用其他過濾器替代.

        2 Spring+Struts+Hiberante框架

        目前Spring+Struts+Hiberante框架在企業(yè)中廣泛應(yīng)用.我們采用分層的架構(gòu),分為Action層、Service層和Dao層.用Spring3.0對這些層對象進(jìn)行管理,采用面向接口的編程方式.向Action中依賴注入Service對象,向Service中依賴注入Dao對象.用 Hibernate3.2實(shí)現(xiàn)數(shù)據(jù)持久化.MVC采用Struts2.1.8.

        3 Spring Security 3.0 構(gòu)建 Spring+Struts+Hibernate應(yīng)用的安全性

        對于一般的J2EE應(yīng)用,如果數(shù)據(jù)持久化采用數(shù)據(jù)庫,Spring Security使用Spring JDBC來獲得認(rèn)證信息.Spring Security提供一個(gè)JdbcDaoImpl類來實(shí)現(xiàn)UserDetailsService接口.如果采用這種方法,那么必須在數(shù)據(jù)庫中創(chuàng)建users和authorities這兩個(gè)Spring Security專用的表.使用這種方法的優(yōu)點(diǎn)是它簡單直接.

        對于Spring+Struts+Hibernate的應(yīng)用,可以采用以上方法.但是因?yàn)楸緛砭褪褂?ORM框架,所以自定義類實(shí)現(xiàn)UserDetailsService接口,充分利用Hibernate框架提供的服務(wù),然后將自定義類對象依賴注入AuthenticationProvider,最終供AuthenticationManager調(diào)用.這樣做的另一個(gè)好處是不需要建立Spring Security專用的表,數(shù)據(jù)是一個(gè)整體,更容易保持?jǐn)?shù)據(jù)的一致性.

        相關(guān)代碼如下:

        上述代碼中Manager類和Role類之間是多對多映射,關(guān)鍵在于不能使用懶加載.

        在上述代碼中我們利用Hiberante提供的服務(wù)查詢一個(gè)用戶名,獲得該用戶的所有授權(quán),將授權(quán)裝入GrantedAuthority對象,最后組裝成一個(gè)User返回.這樣,通過自定義類實(shí)現(xiàn)了UserDetailsService接口.

        我們用Spring Security 3.0對頁面訪問進(jìn)行權(quán)限控制,同時(shí)對Service層的delelte和deleteById方法調(diào)用實(shí)行權(quán)限控制.相關(guān)代碼如下:

        結(jié)果:只有通過認(rèn)證才能訪問頁面,并且只有用具有ROLE_ADMIN權(quán)限的經(jīng)理才可以刪除客戶信息.

        4 討論

        使用Hibernate懶加載并設(shè)置spring的OpenSessionIn-ViewFilter,會造成數(shù)據(jù)庫一直保持連接,最后被JVM強(qiáng)行關(guān)閉.故不能使用Hibernate的懶加載.

        5 結(jié)束語

        利用Spring Security 3.0建立 Spring+Struts+Hibernate應(yīng)用的安全性,自定義類實(shí)現(xiàn)UserDetailsService接口,利用Spring Security 3.0的認(rèn)證機(jī)制,并對web請求和方法調(diào)用實(shí)行權(quán)限控制.我們實(shí)現(xiàn)了Spring+Struts+Hibernate框架和Spring Security 3.0連接的一種方法.

        [1] Alex B,Taylor L.Spring security reference documentation,3.0.7 RELEASE[EB/OL].http://static.springsource.org/spring - security/site/docs/3.0.x/reference/springsecurity.html,2011.

        [2]Walls C,Breidenbach R.Spring in Action中文版(第二版)[M].畢慶紅,譯.北京:人民郵電出版社,2008.

        TP311

        A

        1008-4681(2012)02-0050-02

        2012-01-21

        福建省教育廳B類科技項(xiàng)目(批準(zhǔn)號:JB11263).

        詹勁松(1967-),男,福建三明人,福建師范大學(xué)福清分校數(shù)學(xué)與計(jì)算機(jī)系講師,碩士.研究方向:信息安全、操作系統(tǒng).

        (責(zé)任編校:晴川)

        猜你喜歡
        福建師范大學(xué)計(jì)算機(jī)系福清
        福建師范大學(xué)連續(xù)7年支教留守兒童
        海峽姐妹(2019年8期)2019-09-03 01:01:06
        計(jì)算機(jī)系簡介
        關(guān)于Weitzenbock不等式的一條不等式鏈
        臺灣青年隨父深耕福清臺農(nóng)創(chuàng)業(yè)園20載
        海峽姐妹(2019年6期)2019-06-26 00:52:32
        福建師范大學(xué)博士生導(dǎo)師
        ——陳桂蓉教授
        童年趣事之不一起玩的理由
        童年趣事之不一起玩的理由
        那些年,我們錯(cuò)過的旗袍秀——旗媛淑院福清分院揭牌
        海峽姐妹(2017年4期)2017-05-04 04:03:52
        福清“表情包”
        快樂語文(2016年32期)2016-04-10 10:47:25
        俺咋找不到女朋友呢?
        精品黑人一区二区三区久久hd| 人妻人人澡人人添人人爽人人玩| 欧美日韩国产亚洲一区二区三区 | 国产无套内射久久久国产| 在线高清精品第一区二区三区| 久久精品国产亚洲av热明星| 国产亚洲成人精品久久久| 成人影院yy111111在线| 中字幕久久久人妻熟女| 日本一区二区三区中文字幕视频| 日韩精品免费在线视频一区| 久久国产精品偷任你爽任你| 爽爽午夜影视窝窝看片| 无码人妻专区一区二区三区| 国产高清人肉av在线一区二区| 男人扒开添女人下部免费视频| 最新亚洲av日韩av二区| 精品黑人一区二区三区| 视频在线观看国产自拍| 成人免费777777被爆出| 日本韩国一区二区三区| 91久久国产露脸国语对白| 中文字幕日韩精品有码视频| 亚洲国产综合精品 在线 一区| 色婷婷色99国产综合精品| 久久久亚洲av成人乱码| 国产偷国产偷精品高清尤物| 无码中文字幕色专区| 亚洲国产精品一区二区第一 | 91精品国自产拍老熟女露脸| 精品无码国产一区二区三区av | 日本一区二区三区高清视| 亚洲av无码久久精品色欲| 乱码一二区在线亚洲| 亚洲免费av第一区第二区| 日本中文字幕一区二区有码在线| 国产96在线 | 欧美| 91热视频在线观看| av在线免费观看大全| 男女上下猛烈啪啪免费看| 91爱爱视频|