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