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

        ?

        基于J2EE/Web架構(gòu)的安全系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2008-04-12 00:00:00白國(guó)枝
        現(xiàn)代電子技術(shù) 2008年16期

        摘 要:針對(duì)某大型企業(yè)的綜合業(yè)務(wù)處理系統(tǒng),結(jié)合Java2核心API與擴(kuò)展API進(jìn)行分析,提出3種方式,從多個(gè)層面解決基于J2EE分布模型的Web應(yīng)用系統(tǒng)的實(shí)現(xiàn)及該應(yīng)用系統(tǒng)的安全問(wèn)題。采用J2EE體系結(jié)構(gòu)進(jìn)行應(yīng)用開發(fā),構(gòu)造完全不依賴平臺(tái)的系統(tǒng),支持分布式事務(wù)處理,高效地開發(fā)和發(fā)布分布式應(yīng)用系統(tǒng)。表明J2EE的安全編程模式及Weblogic Server的JNDI認(rèn)證和授權(quán)的安全機(jī)制,是企業(yè)的首選構(gòu)造平臺(tái)。

        關(guān)鍵詞:J2EE;MVC;JAAS;JNDI

        中圖分類號(hào):TP39308 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1609404

        Design and Development of Security System Based on J2EE/Web Architecture

        BAI Guozhi

        (Center of Network,Xuchang University,Xuchang,461000,China)

        Abstract:Aiming at the integrated network service system of a large enterprise,combining the Java2 core API and the expanded API to carry on the analysis,three methods are put forward,security of the realization and the Web applied system from several levels based on J2EE distribution model are resolved.Adopting the J2EE system structure to carry on the business application development,constructing the system that did not depend on platform,which supporting the distribute type business processing,the distributed application system with high efficiency is developed and released.It shows the safe programming mode of J2EE and the safe mechanism of authorization of Weblogic Server is the first choice of enterprise to choose to construct the platform.

        Keywords:J2EE;MVC;JAAS;JNDI

        1 J2EE在Web開發(fā)應(yīng)用中的實(shí)現(xiàn)

        1.1 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        客戶是一家大型的半導(dǎo)體生產(chǎn)企業(yè),希望建立一個(gè)綜合業(yè)務(wù)處理系統(tǒng),能將企業(yè)生產(chǎn)中的采購(gòu)、銷售、發(fā)運(yùn)、退貨等業(yè)務(wù)全部統(tǒng)一到一個(gè)信息平臺(tái)上,實(shí)現(xiàn)信息的共享,加快內(nèi)部處理響應(yīng)速度,針對(duì)基于B/S結(jié)構(gòu)的綜合業(yè)務(wù)處理系統(tǒng)采用J2EE 應(yīng)用中的MVC架構(gòu),如圖1所示?!癑SP頁(yè)面”對(duì)應(yīng)于“V”,控制類和輔助類對(duì)應(yīng)于“C”;實(shí)體類和數(shù)據(jù)類對(duì)應(yīng)于“M”,使用UML建模工具Rational Rose對(duì)企業(yè)系統(tǒng)需求進(jìn)行建模分析,把業(yè)務(wù)需求轉(zhuǎn)換成用例視圖(Use Case Diagram)。然后對(duì)每個(gè)用例進(jìn)行細(xì)化,對(duì)每一個(gè)用例進(jìn)行分析實(shí)現(xiàn)它的時(shí)序圖(sequence diagram)或其他視圖,接著使用Jbuilder9等工具來(lái)完成代碼的編寫和測(cè)試工作,在編程時(shí),根據(jù)Rose生成的UML視圖來(lái)編寫相應(yīng)的代碼。

        1.2 系統(tǒng)的構(gòu)成

        本系統(tǒng)服務(wù)器端選用BEA Web Logic Server7.0作為J2EE中間件平臺(tái),選用Oracle8i作為RDBMS數(shù)據(jù)庫(kù)服務(wù)器??蛻舳耸褂煤?jiǎn)單的IE瀏覽器即可。在多層結(jié)構(gòu)的應(yīng)用中,BEA WebLogic Server7.0可以提供開發(fā)和利用服務(wù)器端業(yè)務(wù)邏輯的基本框架,支持分布式編程模型,提供一定程度的透明性。以下使用相關(guān)的例子都是以BEA Web Logic Server7.0和Oracle8i為例來(lái)進(jìn)行說(shuō)明。

        2 系統(tǒng)中的安全問(wèn)題探討

        2.1 J2EE體系中的JAASJava驗(yàn)證和授權(quán)

        JAAS通過(guò)在應(yīng)用程序和底層的驗(yàn)證和授權(quán)機(jī)制之間加入一個(gè)抽象層,可以簡(jiǎn)化涉及到Java Security包的程序開發(fā),抽象層獨(dú)立于平臺(tái)的特性使開發(fā)人員可以使用各種不同的安全機(jī)制,而且不必修改應(yīng)用程序級(jí)的代碼和其他Java Security API相似,JAAS通過(guò)一個(gè)可擴(kuò)展的框架——服務(wù)提供者接口(Service Provider Interface,SPI)來(lái)保證程序獨(dú)立于安全機(jī)制。應(yīng)用程序級(jí)的代碼主要處理Login Context,在Login Context下面是一組動(dòng)態(tài)配置的Login Modules,Login Module使用正確的安全機(jī)制進(jìn)行驗(yàn)證。

        JAAS可以同時(shí)在客戶端和服務(wù)器端應(yīng)用程序上工作。Web Logic Sever使用JAAS在胖客戶端認(rèn)證和內(nèi)部認(rèn)證,因此,只有客戶化Authentication Provider的開發(fā)者和遠(yuǎn)程胖客戶端需要直接使用JAAS,瘦客戶端和在container內(nèi)的胖客戶端( EJB throgh servlet )不需要直接使用JAAS。

        2.2 J2EE的安全編程模式及Weblogic Server的JNDI認(rèn)證和授權(quán)的安全機(jī)制 J2EE定義2種安全編程模式,一種模式稱為聲明性安全,它使用一種表單,表示應(yīng)用程序的安全結(jié)構(gòu),其中包括角色、訪問(wèn)控制和認(rèn)證要求;另一種模式稱為編程性安全,在應(yīng)用程序代碼中增加安全檢查,能夠把應(yīng)用程序代碼和安全限制分開,所以通常最好選擇聲明性安全。但當(dāng)聲明性安全模式不能單獨(dú)滿足安全要求時(shí),可以在應(yīng)用程序中使用編程性安全模式。因此應(yīng)用程序本身必須根據(jù)用戶的要求和權(quán)限,了解安全情況并做出動(dòng)態(tài)決策。

        Web logic server實(shí)現(xiàn)JNDI認(rèn)證和授權(quán)的安全機(jī)制[1,2],JNDI名字樹是經(jīng)過(guò)整個(gè)Web logic Server實(shí)例的集群來(lái)復(fù)制的,這使得JNDI名字樹就像一個(gè)安全的上下文環(huán)境的跟蹤機(jī)制,在實(shí)際系統(tǒng)的實(shí)現(xiàn)中,通過(guò)JNDI服務(wù),才能實(shí)現(xiàn)J2EE兩種安全編程模式的相互補(bǔ)充[3]

        2.3 系統(tǒng)中的安全問(wèn)題及解決方法

        2.3.1 Web層的安全問(wèn)題

        (1) 身份認(rèn)證和安全審計(jì)

        認(rèn)證是確定用戶身份的過(guò)程,有用戶名/密碼結(jié)合的認(rèn)證或更高級(jí)的認(rèn)證?;诓煌闆r可供選擇的認(rèn)證方法有:

        ① 基于密碼的認(rèn)證;

        ② 基于表單的認(rèn)證;

        ③ 數(shù)字證書/HTTPS認(rèn)證。

        文中的綜合業(yè)務(wù)處理系統(tǒng)采用第一種基于密碼的認(rèn)證,安全審計(jì),是需要把各個(gè)安全管理功能收集上的事件以及記錄下來(lái)的安全日志進(jìn)行綜合分析,安全日志主要記錄用戶對(duì)資源的訪問(wèn)過(guò)程,以及對(duì)系統(tǒng)的管理操作。若系統(tǒng)出現(xiàn)問(wèn)題,管理人員就可以審核誰(shuí)對(duì)該綜合業(yè)務(wù)處理系統(tǒng)做了那些操作,以便于如何進(jìn)行系統(tǒng)恢復(fù)。

        (2) 安全套接字層SSL

        SSL是一個(gè)協(xié)議,它通過(guò)加密數(shù)據(jù)確保數(shù)據(jù)在傳輸中的保密性,SSL又用于認(rèn)證客戶機(jī)和用戶,SSL服務(wù)是基于加密技術(shù)的,該技術(shù)把可閱讀的“普通文本”加密成不易閱讀的“密碼文本”。

        (3) 會(huì)話管理

        目前有幾種方法保持Session會(huì)話狀態(tài),一種在客戶端保存Session狀態(tài),另一種是在服務(wù)器端保存Session狀態(tài)。在客戶端保持Session狀態(tài)有幾個(gè)好處:

        ① 相對(duì)容易實(shí)現(xiàn),如采用HTTP hidden變量或者HTTP cookies來(lái)保存會(huì)話狀態(tài);

        ② 如果需要記錄的狀態(tài)量較少,工作效率相當(dāng)好。

        2.3.2 業(yè)務(wù)層的安全問(wèn)題

        (1) EJB事務(wù)的安全

        EJB框架不規(guī)定特定于任何事務(wù)服務(wù)或協(xié)議的事務(wù)管理。但是規(guī)范要求把JTS的javax,transact ion,User Transaction接口提供給EJB,類似于MTS,EJB框架提供了事務(wù)的聲明界定。容器有5種屬性類別:不支持、要求、支持、要求新的、強(qiáng)制,通過(guò)5種屬性類別的定義,容器知道:是否在一個(gè)全局上下文中調(diào)用bean,是否在一個(gè)新事務(wù)或者已有相關(guān)聯(lián)的事務(wù)調(diào)用bean。EJB框架支持3類事務(wù)界定:一是聲明界定,在一個(gè)EJB服務(wù)器上部署bean的時(shí)候指定要求的屬性,bean可以用javax.ejb.EJB Context.set Rollback Only()方法來(lái)為回滾而標(biāo)記事務(wù);二是bean管理的界定,類似于客戶管理的界定;三是用戶管理的界定,Java客戶可使用javax.transact ion.User Transaction接口來(lái)編程界定事務(wù)。

        (2) EJB方法訪問(wèn)控制

        訪問(wèn)權(quán)限定義調(diào)用方法的一個(gè)或多個(gè)安全角色,如果調(diào)用標(biāo)識(shí)是角色表示中的一個(gè)成員,容器將允許這個(gè)方法調(diào)用繼續(xù)執(zhí)行。否則,EJB容器將發(fā)出一個(gè)java.rmi.RemoteException的異常信息,且禁止調(diào)用的執(zhí)行。

        EJB的安全角色EJB配置描述器中使用標(biāo)記符定義。安全角色標(biāo)記符中包括一個(gè)選用的標(biāo)記符,一個(gè)標(biāo)記符,分別用于提供描述信息,定義角色名字。也可以在EJB配置描述器中使用標(biāo)記符,定義方法訪問(wèn)控制表,方法訪問(wèn)控制權(quán)限標(biāo)記符中包含一個(gè)選用的標(biāo)記符,一個(gè)或多個(gè)標(biāo)記符,分別用于提供描述信息以及定義角色和方法名字。后2個(gè)標(biāo)記符的語(yǔ)義是,列出的任何一個(gè)角色都可以訪問(wèn)任何一個(gè)匹配的方法,其中,方法可以采用不同的形式進(jìn)行定義,第一種方式是“*”通配符,意指EJB中的所有方法;第二種方式是標(biāo)記符,也可以定義某一類方法都具有指定的方法訪問(wèn)權(quán)限;第三種方式是標(biāo)記符也可以嚴(yán)格地指定方法的語(yǔ)法格式, 只有采用給定語(yǔ)法格式的方法調(diào)用才具有定義的訪問(wèn)權(quán)限,下面是這3種方式的例子。

        <securityrole>

        <description>the description about salesman role!

        </description>

        <rolename>salesman</rolename>

        </securityrole>

        ……

        <methodpermission>

        < rolename>Salesman</rolename>

        //第一種方式,定義要求調(diào)用者必須是Salesman組成員,才能訪問(wèn)SalesEJB;

        <method>

        <ejbname>SalesEJB</ejbname>

        <methodname>*</method/name>

        </method>

        //或者第二種方式,定義說(shuō)明任何名字為getCustomer List的方法只能由Salesman角色的成員訪問(wèn)

        <method>

        <ejbname>SalesEJB</ejbname>

        <methodname>getCustomer List</methodname>

        </method>

        //或者第三種方式,采用getCustomer Data(java.lang.String)格式的方法.限定為只有Salesman角色才可以訪問(wèn);

        <method>

        <ejbname>SalesEJB</ejbname>

        <methodname>getCustomer Data</methodname>

        <methodparams>java.lang.String</methodparams></method>

        </methodpermission>

        至此,已經(jīng)為SalesEJB定義了安全模型,其中只有適當(dāng)角色才能夠訪問(wèn)SalesEJB的敏感部分,但是,還沒有指定把實(shí)際的系統(tǒng)用戶映射到應(yīng)用的安全角色,下面給出配置描述器的一個(gè)配置說(shuō)明:把系統(tǒng)用戶john和kate映射于Salesman的安全角色,可以根據(jù)SalesEJB的安全模型,根據(jù)它的方法訪問(wèn)控制表訪問(wèn)相應(yīng)的數(shù)據(jù)模塊。

        <securityDroleassignment>

        <rolename>Salesman</rolename>

        <principalname>John</principalname>

        <principalname>Kate</principalname>

        </securityroleassignment>

        EJB安全API僅由java.security.Principal的getCaller Principal()方法和EJB Context的isCaller In Role(String role Name)方法組成,isCaller In Role()方法是一個(gè)針對(duì)上述安全模型的接口,它僅測(cè)試當(dāng)前用戶是不是給定的角色的成員,getCaller Pricipal()方法返回調(diào)用者本人的信息,通常,用于對(duì)調(diào)用者本人進(jìn)行安全檢查。例如:

        private Session Contextctx;

        private String user name;

        public void set Billing Address(String role Name){

        If (! ctx.isCaller In Role (\"Users\") ){

        throw new Security Exception(\"no so users\");

        }

        if(! username.equals(getCaller Principal().get Name()))

        {

        throw new Security Exception (\"Caller cannot access this account\" ) ;

        }

        //business logic…

        }

        當(dāng)EJB代碼調(diào)用is Caller In Role()方法時(shí),它正在引用的是一個(gè)相對(duì)于Bean實(shí)例的本地邏輯角色名,這個(gè)邏輯角色名必須映射到EJB配置描述器中的一個(gè)具體角色名上,而映射關(guān)系可以通過(guò)<securityroleref>標(biāo)記符實(shí)現(xiàn),這個(gè)標(biāo)記符包含一個(gè)選用的描述信息和一個(gè)引用的具體角色。

        <securityroleref>

        Asalesman user

        Salesman

        User

        2.3.3 EIS層的安全問(wèn)題

        (1) RDBMS安全

        數(shù)據(jù)庫(kù)的安全性是數(shù)據(jù)庫(kù)管理員日常工作中十分關(guān)注的一個(gè)問(wèn)題,下面圍繞如何保證Oracle數(shù)據(jù)庫(kù)具有較高的安全性,使數(shù)據(jù)庫(kù)系統(tǒng)處于一個(gè)穩(wěn)定安全的狀態(tài)進(jìn)行研究。

        (1) 用戶角色的管理

        在本綜合業(yè)務(wù)系統(tǒng)中,Web logic Server使用JDBC連接Oracle數(shù)據(jù)庫(kù),為了充分利用資源和提高訪問(wèn)RDBMS的速度,服務(wù)器配置一個(gè)數(shù)據(jù)庫(kù)連接池,配置連接池時(shí),需要指定連接RDBMS的用戶名、密碼、JDBCURL和JDBC驅(qū)動(dòng)程序;在程序代碼中只使用表示數(shù)據(jù)庫(kù)連接池的JNDI名字,這樣做的好處是,調(diào)整正在使用的數(shù)據(jù)庫(kù)系統(tǒng)而不必要修改應(yīng)用程序。

        (2) 數(shù)據(jù)保護(hù)

        主要是數(shù)據(jù)庫(kù)的備份,當(dāng)計(jì)算機(jī)的軟硬件發(fā)生故障時(shí),利用備份恢復(fù)被破壞的數(shù)據(jù)庫(kù)文件或控制文件或其他文件。另一種就是日志,Oracle數(shù)據(jù)庫(kù)實(shí)例都提供日志,用以記錄數(shù)據(jù)庫(kù)中所進(jìn)行的各種操作,包括修改、調(diào)整參數(shù)等,在數(shù)據(jù)庫(kù)內(nèi)部建立一個(gè)所有作業(yè)的完整記錄。其三是控制文件的備份,用于存儲(chǔ)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的狀態(tài),控制文件中的某些狀態(tài)信息在實(shí)例恢復(fù)和介質(zhì)恢復(fù)期間用于引導(dǎo)Oracle數(shù)據(jù)庫(kù)。

        (3) Oracle數(shù)據(jù)庫(kù)備份

        Oracle8i數(shù)據(jù)庫(kù)的備份主要有以下幾種方式:邏輯備份、物理備份、脫機(jī)備份、聯(lián)機(jī)備份。

        (4) 數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)

        有了上述幾種備份方法,即使計(jì)算機(jī)發(fā)生故障,如介質(zhì)損壞、軟件系統(tǒng)異常等情況時(shí),可以通過(guò)備份進(jìn)行不同程度的恢復(fù),使Oracle數(shù)據(jù)庫(kù)系統(tǒng)盡快恢復(fù)到正常狀態(tài)。

        (5) 其他相關(guān)的安全問(wèn)題

        綜合業(yè)務(wù)系統(tǒng)需要和企業(yè)遺留的其他系統(tǒng)進(jìn)行集成,充分利用已有資源,實(shí)現(xiàn)最大程度上資源共享。集成分3個(gè)層次:一是數(shù)據(jù)的集成,在集成之前,必須首先對(duì)數(shù)據(jù)進(jìn)行標(biāo)識(shí)并編成目錄,另外還要確定元數(shù)據(jù)模型。這三步完成以后,數(shù)據(jù)才能在數(shù)據(jù)庫(kù)系統(tǒng)中分布和共享;二是應(yīng)用系統(tǒng)的集成,即為2個(gè)應(yīng)用中的數(shù)據(jù)和函數(shù)提供接近實(shí)時(shí)的集成,在應(yīng)用系統(tǒng)集成中,對(duì)系統(tǒng)的登錄、認(rèn)證、審計(jì)是至關(guān)重要的;三是業(yè)務(wù)流程的集成,包括業(yè)務(wù)管理、進(jìn)程模擬以及綜合任務(wù)、流程、組織和進(jìn)出信息的工作流,還包括業(yè)務(wù)處理中每一步都需要的工具[4]

        如何實(shí)現(xiàn)系統(tǒng)間的無(wú)縫連接,J2EE連接器架構(gòu)(JCA)對(duì)J2EE標(biāo)準(zhǔn)集做了的重要的補(bǔ)充,JCA包括3個(gè)關(guān)鍵的元素:JCA資源適配器、系統(tǒng)界面、通用客戶界面(Common Client Interface,CCI),要支持JCA的事務(wù)和安全功能需要目標(biāo)程序通過(guò)資源適配器為程序的訪問(wèn)提供足夠的事務(wù)和安全界面。

        3 結(jié) 語(yǔ)

        采用J2EE體系結(jié)構(gòu)進(jìn)行企業(yè)應(yīng)用開發(fā)可以構(gòu)造完全不依賴平臺(tái)的系統(tǒng),并且支持分布式事務(wù)處理,可高效地開發(fā)和發(fā)布分布式應(yīng)用系統(tǒng),是企業(yè)的首選構(gòu)造平臺(tái)。文中主要探討J2EE

        技術(shù)在Web應(yīng)用開發(fā)中的一系列安全問(wèn)題,如身份認(rèn)證、審計(jì)、會(huì)話管理、EJB事務(wù)安全、EJB方法訪問(wèn)控制、數(shù)據(jù)庫(kù)安全等。針對(duì)這些問(wèn)題文中給出相應(yīng)的解決方案。

        參 考 文 獻(xiàn)

        [1]Michael Gridley.J2EE應(yīng)用與BEA Weblogic Server [M].邢國(guó)慶,譯.北京:電子工業(yè)出版社,2002.

        [2]李文舉,姜華,劉德山.基于J2EE架構(gòu)的網(wǎng)絡(luò)課程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].遼寧師范大學(xué)學(xué)報(bào):自然科學(xué)版,2007,30(3):319321.

        [3]羅新.基于Web/J2EE架構(gòu)的銷售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2006,22(6):8486.

        [4]張靖.基于J2EE平臺(tái)的Web應(yīng)用研究[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2006,25(4):292294.

        [5]倪禮豪.基于J2EE技術(shù)的Web應(yīng)用[J].微型機(jī)與應(yīng)用,2007,(S1):2224.

        [6]李偉群,鄔家煒,劉薇.基于J2EE的分布式Web應(yīng)用系統(tǒng)框架設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2007(6):5455.

        [7]林青,許鎖坤.基于J2EE的企業(yè)級(jí)系統(tǒng)持久性框架的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007(7):1 7321 734.

        作者簡(jiǎn)介 白國(guó)枝 女,1965年出生,河南許昌人,許昌學(xué)院網(wǎng)絡(luò)中心,講師。研究方向?yàn)榫W(wǎng)絡(luò)和信息安全。

        成人免费视频在线观看| 色欲色香天天天综合网www| 丰满少妇高潮惨叫久久久一| 伊人久久综合精品无码av专区| 五月天无码| 日本午夜a级理论片在线播放| 国产精品国产三级国产a| 日本熟妇色xxxxx欧美老妇| 欧美日韩国产成人综合在线影院| 最全精品自拍视频在线| 国产精品免费一区二区三区四区 | 欧美巨大xxxx做受中文字幕| 国产传媒在线视频| 国产三级av大全在线爽| 午夜免费福利小电影| 人妻在卧室被老板疯狂进入国产| 日韩极品视频在线观看免费| 青青草视频在线观看网| 欧美乱妇高清无乱码在线观看| 久久久久久人妻精品一区百度网盘 | 丰满少妇被猛进去高潮| 欧美日韩视频在线第一区| 91亚洲国产成人aⅴ毛片大全| 日本一区二区三区精品不卡| 亚洲av福利院在线观看 | 日韩美女人妻一区二区三区 | 国产乱码卡二卡三卡老狼| 人妻在卧室被老板疯狂进入国产| 中文字幕日韩人妻在线| 亚洲av熟女少妇久久| 国产男女猛烈视频在线观看| 国产真实乱对白在线观看| 亚洲视频专区一区二区三区| 亚洲av无码专区亚洲av伊甸园 | 琪琪的色原网站| 国产精品1区2区| 国产免费网站在线观看不卡| 18精品久久久无码午夜福利| 欧美一级色图| 一区二区三区国产天堂| av色综合久久天堂av色综合在|