Posted on 2005-11-16 10:29
Terry的Blog 閱讀(1173)
評(píng)論(1) 編輯 收藏 所屬分類:
web開發(fā)
Web單點(diǎn)登錄功能設(shè)計(jì)
環(huán)境:Weblogic6.1 Oracle9i
1 需求: 現(xiàn)在有兩套Web Application app1和app2,分別放在兩臺(tái)服務(wù)器上.現(xiàn)在希望從app1登錄后能通過Http鏈接直接遷移到app2畫面.不需要用戶再輸入口令。
2 分析: 這個(gè)問題本質(zhì)上就是讓兩臺(tái)機(jī)器共享登錄的數(shù)據(jù)。
3 解決方法: 考慮通過Http鏈接中的參數(shù)傳遞session Id。實(shí)際的登錄的數(shù)據(jù)放在一個(gè)雙方都可以存取的公共區(qū)。
現(xiàn)在選擇weblogic的JNDI。(數(shù)據(jù)庫(kù)也可以)
4 實(shí)現(xiàn):1: app1登錄時(shí)把登錄數(shù)據(jù)放到一個(gè)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.tkk7.com/terry-zj/archive/2005/11/16/20012.html
2: 登錄數(shù)據(jù)放到一個(gè)HashMap中而不是AccountBean之類的自定義結(jié)構(gòu)。
3: 這個(gè)方法的負(fù)荷能力還需具體測(cè)試。