电竞比分网-中国电竞赛事及体育赛事平台

分享

J2EE應用服務器和DOMINO之間的SSO實現(xiàn)

 smoking_boy 2006-11-13

在門戶或其他J2EE項目中,經常要實現(xiàn)J2EE Application Server與DOMINO R6之間的的單點登錄.除了采用專門的商業(yè)SSO軟件外,經常需要自己實現(xiàn),下面以Weblogic Server為例子說明一種簡單的實現(xiàn)方式,對其他的J2EE Application Server應該也適用,如果是WebSphere 和Domino之間的SSO實現(xiàn),也采用其他方式,具體請參考:


1.建立兩個系統(tǒng)之間用戶的對應關系

同一個用戶在WebLogic系統(tǒng)和Domino系統(tǒng)的用戶名/密碼可能不一樣,為了實現(xiàn)單點登錄。必須在一張表或文件中保存他們的對應關系。該表的定義如下:

create table sso_info
 (
  wls_user    char(20),        //在weblogic系統(tǒng)中的用戶名
  wls_pass    char(10),        //在weblogic系統(tǒng)中的密碼
  domino_user char(20),        //在Domino系統(tǒng)中的用戶名
  domino_pass char(10)         //在Domino系統(tǒng)中的密碼
   )
如果這兩個系統(tǒng)都采用統(tǒng)一的LDAP進行用戶認證,那么同一個用戶在這兩個系統(tǒng)中的用戶名/密碼都是一樣的,就無需建立這種對應關系。
在本次測試中采用DOMINO LDAP

2.從WebLogic系統(tǒng)登錄到Domino系統(tǒng)實現(xiàn)方式

如下圖:


說明:
1, 在WebLogic系統(tǒng)上部署一個用于進行用戶登錄的Servlet: WlsLogin,客戶端采用瀏覽器訪問該Servlet進行登錄。WlsLogin取得客戶端輸入的用戶名/密碼并在WebLogic系統(tǒng)中進行登錄。
2, 當客戶端成功登錄到WebLogic系統(tǒng)后,WlsLogin中通過查詢上面定義的表sso_info,得到該用戶在Domino系統(tǒng)中的用戶名/密碼,然后在WlsLogin中通過JAVA網絡編程方式訪問Domino系統(tǒng)的登錄頁面,登錄Domino系統(tǒng)。
3, 如果登錄Domino系統(tǒng)成功,用戶不需要登錄,就可以直接訪問Domino系統(tǒng).

用戶從WebLogic系統(tǒng)退出處理
當用戶從WebLogic系統(tǒng)退出時,調用一個定制的Servlet: WlsLogout。WlsLogout先把用戶從WebLogic系統(tǒng)中退出。然后通過JAVA網絡編程方式調用部署在Domino系統(tǒng)上的一個Servlet: DominoOut。在DominoOut中使用戶從Domino系統(tǒng)中退出。這樣用戶在Weblogic,Domino兩個系統(tǒng)可以同時登錄,同時退出,保持session同步。


3.從Domino系統(tǒng)登錄到WebLogic系統(tǒng)實現(xiàn)方式
如下圖:


說明:
1,  在Domino系統(tǒng)上部署一個用于進行用戶登錄的Servlet: DominoLogIn,客戶端采用瀏覽器訪問該Servlet進行登錄。DominoLogIn取得客戶端輸入的用戶名/密碼并在Domino系統(tǒng)中進行登錄.
2,  當客戶端成功登錄到Domino系統(tǒng)后,DominoLogIn中通過查詢上面定義的表sso_info,得到該用戶在WebLogic系統(tǒng)中的用戶名/密碼,然后在DominoLogIn中通過JAVA網絡編程方式訪問Weblogic系統(tǒng)的登錄頁面。登錄Weblogic系統(tǒng)。
3,  如果登錄Weblogic系統(tǒng)成功,在DominoLogIn中會得到返回的http頭及cookie信息。同時在WebLogic系統(tǒng)上也會有該用戶的session信息。
4,  在DominoLogIn中把3中WebLogic返回的Cookie信息返回給客戶端。
5,  客戶端有了訪問WebLogic系統(tǒng)的cookie信息。同時WebLogic系統(tǒng)中也有了該客戶端的session信息。用戶不需要登錄,就可以直接訪問WebLogic系統(tǒng)。

用戶從Domino系統(tǒng)退出處理
當用戶從Domino系統(tǒng)退出時,調用一個定制的Servlet: DominoLogOut。DominoLogOut先把用戶從Domino系統(tǒng)中退出。然后通過JAVA網絡編程方式調用部署在WebLogic系統(tǒng)上的一個Servlet: WlsOut。在WlsOut中使用戶從WebLogic系統(tǒng)中退出。這樣用戶在WebLogic,Domino兩個系統(tǒng)可以同時登錄,同時退出,保持Session同步。

4.實現(xiàn)的參考代碼下載:

參考代碼下載

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多