在Weblogic環境下的servlet中實現應用級身份認證 (轉)

worldblog發表於2007-12-10
在Weblogic環境下的servlet中實現應用級身份認證 (轉)[@more@]在LOGIC環境下的中實現應用級身份 



 在weblogic中利用應用本身的,可以比較全面的實現認證。由於我們主要是面向開發,這裡主要講解在servlet中使用使用者角色規則(也就是我們常說的http使用者認證,下面還是使用這個我們熟悉的名詞吧)。
       Weblogic使用者認證的三種方式
   在weblogic應用伺服器中,提供了三種不同的使用者認證方式:
   

BASIC

   基本的身份認證方式,使用WEB彈出一個要求輸入使用者名稱和密碼的對話方塊。這個使用者名稱和密碼將在網站的某個(些)內容模組中被強制要求。
   
FORM

   基於FORM的使用者認證要求你返回一個包括使用者名稱和密碼的HTML表單,這個表單相對應與使用者名稱和密碼的元素必須是j_username和j_pass,並且表單的action描述必須為j_security_check。下面是一個表單的例子:




   包括這個表單的資源可以是一個HTML頁面、一個頁面或者一個servlet。你可以在元素中定義。當這個認證頁面被提交的時候,將建立一個HTTP session。所以,當認證成功後,使用session.isNew()方法將獲得一個FALSE的返回。
   
CLIENT-CERT

   就是使用客戶數字證書來認證請求,一般都和相聯絡。如果需要使用請參考有關SSL相關內容。

   使用何種認證方法,可以在web.裡的元素中的子元素裡定義。可能的選擇的值為BASIC或FORM或CLIENT-CERT三者之一。

   在servlet中使用使用者認證
   要在servlet中使用使用者認證,必須先對web application進行相應的配置。
   1、修改weblogic.xml中的相關條目:
   
mgr
al
george
ralph
   
   注:是角色名,例如現在這是管理員,然後元素中指定角色所包括的所有使用者名稱。

   2、在web.xml的元素中定義要使用的角色名mgr(在元素中),並在註冊項中為mgr角色做一個連結(manager)
   
...
manager
mgr
...
   

   
mgr
   

   到這裡伺服器上的配置檔案就完成了所需要的修改。

   3、在servlet中引用伺服器的角色認證,只需要在合適的地方加入下一語句即可。
isUserInRole("manager");
   值得注意的是,當使用者認證順利返回後,一個session將被建立。而在weblogic中,預設的情況下各個web appliction都使用相同的cookie名(JSESSIONID),所以當任何一個認證成功以後,所有的Web Application都將使用這個相同的cookie名來儲存有關認證的資訊,從而實現“全站通”概念。假如你想對某個Web Application使用一個單獨的認證,你可以為這個應用單獨定義一個cookie名,這可以透過對weblogic.xml裡的元素有關內容進行相應修改。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990704/,如需轉載,請註明出處,否則將追究法律責任。

相關文章