<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
    http://www.ebuilds.net/news/kanwu/4/4-03.htm

    前言
       J2EE(Java 2 Platform Enterprise Edition)是美國Sun公司推出的多層企業(yè)應用開發(fā)模型。J2EE簡化了基于工業(yè)標準的、組件化的企業(yè)應用開發(fā),提供了一套完整的企業(yè)應用的開發(fā)框架和服務(Security、Transaction、Naming等)的支持。因此,越來越多的企業(yè)應用構建在J2EE平臺上。在企業(yè)應用中,首要關心的是應用的安全性,本文首先介紹J2EE中的安全概念和J2EE的安全體系架構。最后展示在程序的開發(fā)中怎樣應用J2EE提供的安全特性。

    J2EE中的安全概念
       通俗的講,一個安全的系統(tǒng)首先是保證通過了系統(tǒng)驗證的用戶才能進入系統(tǒng),不通過系統(tǒng)驗證的用戶是不能進入系統(tǒng)的。通過系統(tǒng)驗證的用戶只能在授權的范圍內操作,而不能接觸到任何未經授權的任何內容(包括功能和數(shù)據(jù))。為此目的,在系統(tǒng)中需要先定義以下幾種基本的安全概念:
      主體(Principal):主體(Principal)是被在企業(yè)安全服務驗證了的實體。主體(Principal)用主體名作為它的標識,通過與主體相關的驗證數(shù)據(jù)進行驗證。通常情況下主體名就是用戶的登陸名,驗證數(shù)據(jù)就是登陸的密碼。 J2EE規(guī)范中并沒有限定J2EE 產品提供商使用怎樣的認證方法,因此主體名和驗證數(shù)據(jù)的內容和格式依不同的認證協(xié)議而不同。
      安全策略域(Security Policy Domain):也稱安全域(security domain)或 realm,它是一個邏輯范圍或區(qū)域,在這一范圍或區(qū)域中安全服務的管理員定義和實施通用的安全策略。它是從安全策略的角度劃分的區(qū)域。比如可以將企業(yè)應用系統(tǒng)劃分為企業(yè)員工、供應商、合作伙伴等不同的安全域,對這些安全區(qū)域采用不同的安全策略。
      安全技術域(Security Technology Domain):它是從安全技術的角度劃分的區(qū)域,在一個安全技術域中使用同樣的安全機制來執(zhí)行安全策略。一個安全技術域可以包括多個安全策略域。
      安全屬性(Security Attributes):每個主體(Principal)都有一系列與之相關的安全屬性。安全屬性可用來訪問被保護的資源,檢查用戶的身份和完成其他一些安全相關的用途。J2EE產品提供商或具體的驗證服務的實現(xiàn)來決定怎樣將安全屬性與一個主體聯(lián)系起來。J2EE規(guī)范并沒有限定什么樣的安全屬性將與主體相聯(lián)系。
      信任域(Credential):信任域包含或引用為J2EE系統(tǒng)驗證一個主體的驗證信息(安全屬性)。如果成功的通過了驗證,主體將獲得一個包括安全屬性的信任域。如果被允許的話,一個主體也可能獲取另一個主體的信任域。在這種情況下兩個主體在同一安全域中具有相同的安全屬性。

    J2EE安全體系
      1、基于容器的安全
      在J2EE的環(huán)境中,組件的安全是由他們各自的容器來負責的,組件的開發(fā)人員幾乎可以不用或者很少在組件中添加有關安全的代碼。這種安全邏輯和業(yè)務邏輯相對獨立的架構,使得企業(yè)級應用系統(tǒng)有更好的靈活性和擴展性。J2EE規(guī)范要求J2EE 產品必須為應用程序開發(fā)者提供兩種形式的基于容器的安全性:說明性的安全性和可編程的安全性。
      I、說明性的安全性
      說明性的安全性通過安全結構描述的方式來代表應用程序的安全需求,安全結構一般包括安全角色,訪問控制和驗證要求等。在J2EE平臺中部署描述符充當了說明的安全性的主要工具。部署描述符是組件開發(fā)者和應用程序部署者或應用程序組裝者之間的交流工具。應用程序的開發(fā)者用它來表示應用中的安全需求,應用程序部署者或應用程序組裝者將安全角色與部署環(huán)境中的用戶和組映射起來。
      在程序運行時容器從部署描述符中提取出相應的安全策略,然后容器根據(jù)安全策略執(zhí)行安全驗證。說明的安全性不需要開發(fā)人員編寫任何安全相關的代碼,一切都是通過配置部署描述符來完成的。
      II、可編程的安全性
      可編程的安全性在說明性的安全性的基礎上,使安全敏感的應用可以通過調用容器提供的API來對安全作出決斷。這在說明性的安全性不足以滿足企業(yè)的安全模型的情況是非常有用的。J2EE在EJB EjbConext interface和servlet HttpServletRequest interface中各提供兩個方法:
      isCallerInRole (EJBContext)
      getCallerPrincipal (EJBContext)
      isUserInRole (HttpServletRequest)
      GetUserPrincipal (HttpServletRequest)
      這些方法允許組件根據(jù)調用者或遠程用戶的安全角色來作出商業(yè)判斷。
      2、J2EE的驗證模型
      身份驗證是用戶或組件調用者向系統(tǒng)證明其身份的過程。用戶通過某種方式向系統(tǒng)提交驗證信息(通常是用戶名和密碼或者是用戶的數(shù)字證書),系統(tǒng)以用戶提供的驗證信息和系統(tǒng)的安全策略來驗證用戶的身份。
    圖一 初始驗證過程
    圖二 驗證URL
    圖三 驗證EJB方法調用
      I、Web 客戶端的驗證
      Web客戶端通常通過http協(xié)議來請求web服務器端的資源,這些web資源通常包括html網頁、jsp(java server page)文件、java servlet和其他一些二進制或多媒體文件。在企業(yè)環(huán)境中,企業(yè)的某些資源往往要求只允許某些人訪問,有些資源甚至是機密的或安全敏感的。因此對企業(yè)中各種web資源進行訪問控制是十分必要的。為了滿足企業(yè)中的不同安全級別和客戶化的需求,J2EE提供了三種基于web客戶端的驗證方式:
      HTTP基本驗證(HTTP Basic Authentication)
      基于表單的驗證(Form-Based Authentication)
      基于客戶端證書的驗證(Client-Certificate Authentication)
      II、應用程序客戶端的驗證
      Java客戶端程序是執(zhí)行在用戶本地java虛擬機上的java程序,它擁有main方法,通常用戶可通過java.exe或javaw.exe直接啟動執(zhí)行。J2EE應用程序客戶端與java客戶端程序相似,也擁有main方法,但他們在運行時存在一定的差別。J2EE應用程序客戶端和其他J2EE組件一樣運行在自己的容器中。用戶通過容器來執(zhí)行J2EE應用程序客戶端。這樣J2EE應用程序客戶端容器就有機會在J2EE應用程序客戶端被執(zhí)行之前完成用戶身份的驗證。J2EE提供了一種可自定義的方式來獲取用戶的驗證信息。可以選擇使用容器提供的缺省的方式來獲取J2EE應用客戶端程序的用戶的驗證信息,也可以選擇自定義的方式來獲取用戶的驗證信息。
      3、J2EE的授權模型
      I、代碼授權(Code Authorization)
      J2EE產品通過java 2 安全模型來限制特定J2SE的類和方法的執(zhí)行,以保護和確保操作系統(tǒng)的安全。
      II、調用者授權(Caller Authorization)
      安全角色:安全角色是具有相同安全屬性的邏輯組。它由應用程序的裝配者(Application Assembler)或應用程序的部署者(Application Deployer)分配的。
      III、安全角色引用
      安全角色引用是應用程序提供者(Application Provider)用來引用安全角色的標識。應用程序提供者(Application Provider)可以用安全角色引用來為安全角色分配資源訪問的權限,也可以在安全相關的程序代碼中引用安全角色。
      IV、用戶和組
      用戶和組是在實際系統(tǒng)環(huán)境下的用戶和用戶的集合。它們對應著現(xiàn)實當中的人和群體。
      V、訪問控制
      訪問控制可以確保安全角色只能訪問已授予它安全權限的授權對象。授權對象包括EJB的遠程方法、web資源(html網頁,jsp/servlet和多媒體或二進制文件)等。在J2EE中訪問控制在應用程序描述文件中與安全角色關聯(lián)起來。
      VI、映射
      通過映射應用程序的系統(tǒng)管理員將實際系統(tǒng)環(huán)境中的用戶和角色與安全角色聯(lián)系起來,從而是實際的用戶擁有對企業(yè)資源訪問的適當授權。
      VII、被傳播的調用者身份標識
      在J2EE 1.3中可以選擇用傳播調用者標識作為web組件和ejb組件調用者的標識來進行驗證。在這種方式下,整個ejb組件的調用鏈中interface EJBContext的方法getCallerPrincipal返回相同的主體名(principal name)。如果調用鏈中的第一個ejb是被jsp/servlet調用的,interface EJBContext的方法getCallerPrincipal返回的主體名(principal name)應與interface HttpServletRequest的方法getUserPrincipal的返回值相同。要注意的是在調用鏈中傳遞的是用戶的標識,而不是憑證(credentials),這一點非常重要,因為在調用鏈的每個節(jié)點上用戶可能使用不同的安全屬性。
      VIII、Run As Identities
      J2EE 1.3中提供了允許組件開發(fā)者和部署者來指定組件以什么身份運行的方法。符合J2EE1.3規(guī)范的產品會提供將組件設置成Run As Identities方式的方法。如果Run As Identities方式被選中,在運行中被設置為Run As Identities的組件的調用者不再是調用鏈中第一個節(jié)點的調用者了,而是在部署時被指定的調用者。而調用鏈中隨后節(jié)點的調用者也變?yōu)榕c被設置為Run As Identities的組件的調用者相同。
    posted on 2005-05-17 11:59 笨笨 閱讀(1422) 評論(0)  編輯  收藏 所屬分類: J2EEALLWeblogic Portal
    主站蜘蛛池模板: 亚洲av无码专区在线观看素人| 国产三级在线观看免费| 亚洲成av人片一区二区三区| 亚洲人成欧美中文字幕| 精品香蕉在线观看免费| 亚洲人6666成人观看| 国产大片免费网站不卡美女| 亚洲国产av美女网站| 美女网站免费福利视频| 亚洲综合在线一区二区三区| 热99re久久免费视精品频软件| 亚洲成在人线aⅴ免费毛片| 国产精品二区三区免费播放心| 国产精品亚洲精品爽爽| 亚洲国产午夜中文字幕精品黄网站| free哆拍拍免费永久视频| 久久亚洲中文字幕精品一区四| 中文字幕a∨在线乱码免费看| 亚洲av午夜成人片精品网站| 免费A级毛片无码视频| 亚洲伊人久久大香线蕉影院| 成人免费a级毛片无码网站入口| 国产AV无码专区亚洲AV蜜芽| 亚洲无码日韩精品第一页| 国精产品一区一区三区免费视频| 亚洲小视频在线观看| 日韩中文字幕精品免费一区| 亚洲av日韩专区在线观看| 亚洲精品国自产拍在线观看| 久久国产乱子精品免费女| 亚洲乱码无限2021芒果| va亚洲va日韩不卡在线观看| 免费国产叼嘿视频大全网站| 亚洲AV无码乱码在线观看代蜜桃| 国产在线19禁免费观看| a毛片免费全部在线播放**| 国产成人精品日本亚洲18图| 亚洲欧洲久久久精品| 最近2019年免费中文字幕高清 | 亚洲免费福利视频| 又爽又高潮的BB视频免费看|