Posted on 2005-11-16 10:29
Terry的Blog 閱讀(1173)
評論(1) 編輯 收藏 所屬分類:
web開發(fā)
Web單點登錄功能設計
環(huán)境:Weblogic6.1 Oracle9i
1 需求: 現在有兩套Web Application app1和app2,分別放在兩臺服務器上.現在希望從app1登錄后能通過Http鏈接直接遷移到app2畫面.不需要用戶再輸入口令。
2 分析: 這個問題本質上就是讓兩臺機器共享登錄的數據。
3 解決方法: 考慮通過Http鏈接中的參數傳遞session Id。實際的登錄的數據放在一個雙方都可以存取的公共區(qū)。
現在選擇weblogic的JNDI。(數據庫也可以)
4 實現:1: app1登錄時把登錄數據放到一個HashMap綁定到initialContext。
2: 遷移鏈接http://app2ServerAddress/app2/TopEntry.do?sessid=這里寫sessionId。
3: app2方通過request.getAttribute("sessid")得到sessionId再到initialContext中l(wèi)ookup出登錄數據。
附注:1: weblogic中JNDI的使用可參考本Blog相關文章。http://www.tkk7.com/terry-zj/archive/2005/11/16/20012.html
2: 登錄數據放到一個HashMap中而不是AccountBean之類的自定義結構。
3: 這個方法的負荷能力還需具體測試。