999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J2EE/Web架構的安全系統的設計與實現

2008-04-12 00:00:00白國枝
現代電子技術 2008年16期

摘 要:針對某大型企業的綜合業務處理系統,結合Java2核心API與擴展API進行分析,提出3種方式,從多個層面解決基于J2EE分布模型的Web應用系統的實現及該應用系統的安全問題。采用J2EE體系結構進行應用開發,構造完全不依賴平臺的系統,支持分布式事務處理,高效地開發和發布分布式應用系統。表明J2EE的安全編程模式及Weblogic Server的JNDI認證和授權的安全機制,是企業的首選構造平臺。

關鍵詞:J2EE;MVC;JAAS;JNDI

中圖分類號:TP39308 文獻標識碼:B 文章編號: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開發應用中的實現

1.1 系統設計與實現

客戶是一家大型的半導體生產企業,希望建立一個綜合業務處理系統,能將企業生產中的采購、銷售、發運、退貨等業務全部統一到一個信息平臺上,實現信息的共享,加快內部處理響應速度,針對基于B/S結構的綜合業務處理系統采用J2EE 應用中的MVC架構,如圖1所示。“JSP頁面”對應于“V”,控制類和輔助類對應于“C”;實體類和數據類對應于“M”,使用UML建模工具Rational Rose對企業系統需求進行建模分析,把業務需求轉換成用例視圖(Use Case Diagram)。然后對每個用例進行細化,對每一個用例進行分析實現它的時序圖(sequence diagram)或其他視圖,接著使用Jbuilder9等工具來完成代碼的編寫和測試工作,在編程時,根據Rose生成的UML視圖來編寫相應的代碼。

1.2 系統的構成

本系統服務器端選用BEA Web Logic Server7.0作為J2EE中間件平臺,選用Oracle8i作為RDBMS數據庫服務器。客戶端使用簡單的IE瀏覽器即可。在多層結構的應用中,BEA WebLogic Server7.0可以提供開發和利用服務器端業務邏輯的基本框架,支持分布式編程模型,提供一定程度的透明性。以下使用相關的例子都是以BEA Web Logic Server7.0和Oracle8i為例來進行說明。

2 系統中的安全問題探討

2.1 J2EE體系中的JAASJava驗證和授權

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

JAAS可以同時在客戶端和服務器端應用程序上工作。Web Logic Sever使用JAAS在胖客戶端認證和內部認證,因此,只有客戶化Authentication Provider的開發者和遠程胖客戶端需要直接使用JAAS,瘦客戶端和在container內的胖客戶端( EJB throgh servlet )不需要直接使用JAAS。

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

Web logic server實現JNDI認證和授權的安全機制[1,2],JNDI名字樹是經過整個Web logic Server實例的集群來復制的,這使得JNDI名字樹就像一個安全的上下文環境的跟蹤機制,在實際系統的實現中,通過JNDI服務,才能實現J2EE兩種安全編程模式的相互補充[3]

2.3 系統中的安全問題及解決方法

2.3.1 Web層的安全問題

(1) 身份認證和安全審計

認證是確定用戶身份的過程,有用戶名/密碼結合的認證或更高級的認證。基于不同情況可供選擇的認證方法有:

① 基于密碼的認證;

② 基于表單的認證;

③ 數字證書/HTTPS認證。

文中的綜合業務處理系統采用第一種基于密碼的認證,安全審計,是需要把各個安全管理功能收集上的事件以及記錄下來的安全日志進行綜合分析,安全日志主要記錄用戶對資源的訪問過程,以及對系統的管理操作。若系統出現問題,管理人員就可以審核誰對該綜合業務處理系統做了那些操作,以便于如何進行系統恢復。

(2) 安全套接字層SSL

SSL是一個協議,它通過加密數據確保數據在傳輸中的保密性,SSL又用于認證客戶機和用戶,SSL服務是基于加密技術的,該技術把可閱讀的“普通文本”加密成不易閱讀的“密碼文本”。

(3) 會話管理

目前有幾種方法保持Session會話狀態,一種在客戶端保存Session狀態,另一種是在服務器端保存Session狀態。在客戶端保持Session狀態有幾個好處:

① 相對容易實現,如采用HTTP hidden變量或者HTTP cookies來保存會話狀態;

② 如果需要記錄的狀態量較少,工作效率相當好。

2.3.2 業務層的安全問題

(1) EJB事務的安全

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

(2) EJB方法訪問控制

訪問權限定義調用方法的一個或多個安全角色,如果調用標識是角色表示中的一個成員,容器將允許這個方法調用繼續執行。否則,EJB容器將發出一個java.rmi.RemoteException的異常信息,且禁止調用的執行。

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

<securityrole>

<description>the description about salesman role!

</description>

<rolename>salesman</rolename>

</securityrole>

……

<methodpermission>

< rolename>Salesman</rolename>

//第一種方式,定義要求調用者必須是Salesman組成員,才能訪問SalesEJB;

<method>

<ejbname>SalesEJB</ejbname>

<methodname>*</method/name>

</method>

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

<method>

<ejbname>SalesEJB</ejbname>

<methodname>getCustomer List</methodname>

</method>

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

<method>

<ejbname>SalesEJB</ejbname>

<methodname>getCustomer Data</methodname>

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

</methodpermission>

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

<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()方法是一個針對上述安全模型的接口,它僅測試當前用戶是不是給定的角色的成員,getCaller Pricipal()方法返回調用者本人的信息,通常,用于對調用者本人進行安全檢查。例如:

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…

}

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

<securityroleref>

Asalesman user

Salesman

User

2.3.3 EIS層的安全問題

(1) RDBMS安全

數據庫的安全性是數據庫管理員日常工作中十分關注的一個問題,下面圍繞如何保證Oracle數據庫具有較高的安全性,使數據庫系統處于一個穩定安全的狀態進行研究。

(1) 用戶角色的管理

在本綜合業務系統中,Web logic Server使用JDBC連接Oracle數據庫,為了充分利用資源和提高訪問RDBMS的速度,服務器配置一個數據庫連接池,配置連接池時,需要指定連接RDBMS的用戶名、密碼、JDBCURL和JDBC驅動程序;在程序代碼中只使用表示數據庫連接池的JNDI名字,這樣做的好處是,調整正在使用的數據庫系統而不必要修改應用程序。

(2) 數據保護

主要是數據庫的備份,當計算機的軟硬件發生故障時,利用備份恢復被破壞的數據庫文件或控制文件或其他文件。另一種就是日志,Oracle數據庫實例都提供日志,用以記錄數據庫中所進行的各種操作,包括修改、調整參數等,在數據庫內部建立一個所有作業的完整記錄。其三是控制文件的備份,用于存儲數據庫物理結構的狀態,控制文件中的某些狀態信息在實例恢復和介質恢復期間用于引導Oracle數據庫。

(3) Oracle數據庫備份

Oracle8i數據庫的備份主要有以下幾種方式:邏輯備份、物理備份、脫機備份、聯機備份。

(4) 數據庫系統的恢復

有了上述幾種備份方法,即使計算機發生故障,如介質損壞、軟件系統異常等情況時,可以通過備份進行不同程度的恢復,使Oracle數據庫系統盡快恢復到正常狀態。

(5) 其他相關的安全問題

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

如何實現系統間的無縫連接,J2EE連接器架構(JCA)對J2EE標準集做了的重要的補充,JCA包括3個關鍵的元素:JCA資源適配器、系統界面、通用客戶界面(Common Client Interface,CCI),要支持JCA的事務和安全功能需要目標程序通過資源適配器為程序的訪問提供足夠的事務和安全界面。

3 結 語

采用J2EE體系結構進行企業應用開發可以構造完全不依賴平臺的系統,并且支持分布式事務處理,可高效地開發和發布分布式應用系統,是企業的首選構造平臺。文中主要探討J2EE

技術在Web應用開發中的一系列安全問題,如身份認證、審計、會話管理、EJB事務安全、EJB方法訪問控制、數據庫安全等。針對這些問題文中給出相應的解決方案。

參 考 文 獻

[1]Michael Gridley.J2EE應用與BEA Weblogic Server [M].邢國慶,譯.北京:電子工業出版社,2002.

[2]李文舉,姜華,劉德山.基于J2EE架構的網絡課程管理系統的設計與實現[J].遼寧師范大學學報:自然科學版,2007,30(3):319321.

[3]羅新.基于Web/J2EE架構的銷售管理系統的設計與實現[J].哈爾濱商業大學學報:自然科學版,2006,22(6):8486.

[4]張靖.基于J2EE平臺的Web應用研究[J].成都大學學報:自然科學版,2006,25(4):292294.

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

[6]李偉群,鄔家煒,劉薇.基于J2EE的分布式Web應用系統框架設計[J].現代計算機,2007(6):5455.

[7]林青,許鎖坤.基于J2EE的企業級系統持久性框架的設計與實現[J].計算機工程與設計,2007(7):1 7321 734.

作者簡介 白國枝 女,1965年出生,河南許昌人,許昌學院網絡中心,講師。研究方向為網絡和信息安全。

主站蜘蛛池模板: 熟妇人妻无乱码中文字幕真矢织江 | 婷婷伊人五月| 免费a级毛片视频| 亚洲性影院| 亚洲免费福利视频| 亚洲欧洲一区二区三区| 99久久亚洲综合精品TS| 最新国产高清在线| 亚洲人成影视在线观看| 国产精品永久在线| 免费A∨中文乱码专区| 欧美国产日韩在线观看| 亚洲精品成人片在线播放| 亚洲国产综合精品一区| 久久久久国色AV免费观看性色| AV不卡在线永久免费观看| 欧美成人看片一区二区三区 | 国产视频欧美| 精品福利一区二区免费视频| 99九九成人免费视频精品| 成人免费黄色小视频| 亚洲视频在线青青| 少妇露出福利视频| 又爽又大又黄a级毛片在线视频| 中文字幕不卡免费高清视频| 在线色国产| 久久一本精品久久久ー99| 国产精品妖精视频| 午夜久久影院| 美女扒开下面流白浆在线试听| 无码又爽又刺激的高潮视频| 99久久人妻精品免费二区| 色国产视频| 国产成人免费| 精品久久久无码专区中文字幕| 激情综合婷婷丁香五月尤物| 少妇高潮惨叫久久久久久| 国产成人精品无码一区二| 国产在线观看人成激情视频| 亚洲国产系列| 2020国产精品视频| 亚洲欧美日韩久久精品| 中文字幕在线一区二区在线| 亚洲成人精品在线| 波多野结衣无码中文字幕在线观看一区二区 | 欧美中日韩在线| 成人国产精品网站在线看| 欧洲精品视频在线观看| 在线观看免费国产| 亚洲天堂视频网站| 91视频国产高清| 精品乱码久久久久久久| 色国产视频| 自拍偷拍一区| 国产亚洲一区二区三区在线| 欧美不卡二区| 91成人在线观看视频| 国国产a国产片免费麻豆| 国产天天射| 国产精品尤物铁牛tv| 国产网友愉拍精品| 国产高颜值露脸在线观看| 亚洲日韩第九十九页| 天天干天天色综合网| 国产农村精品一级毛片视频| 小说区 亚洲 自拍 另类| 中国毛片网| 国产原创演绎剧情有字幕的| 亚洲国模精品一区| 四虎免费视频网站| 少妇极品熟妇人妻专区视频| 91免费国产高清观看| 少妇极品熟妇人妻专区视频| 久久久久久国产精品mv| 国产网站免费看| 伊人丁香五月天久久综合| 精品久久人人爽人人玩人人妻| 欧美高清三区| 直接黄91麻豆网站| 伊人精品视频免费在线| 色综合网址| 亚洲一级毛片免费看|