java中使用Cookie替代Session解決跨域Session失效問題
阿新 • • 發佈:2019-02-17
Session在跨域時都會碰到失效問題了,但是如果我們使用cookie來替換的話就可以方便的解決這個問題哦,下面我們一起來看看利用Cookie替代Session解決跨域Session失效問題方法。
分散式系統中,各個子域名跨域訪問的時候,會出現session失效問題,導致登入失敗.
例如:使用者在www.111cn.net 上登入成功了.但是切換到他的個性化域名 mb.111cn.net 上的時候session失效.
怎麼辦?
可以採用session複製方案,比如nfs session共享,membercache session儲存,還有使用terracotta也可以.
採取以上方案都可以,但是上述方案會導致開發環境過於複雜,運維環境也過於複雜,而且session跨網路傳輸響應速度會減慢.
故我這邊採用了輕量級的cookie替代session解決方案.
Cookie替代Session,解決分散式Session失效問題思路如下:
儲存過程:
1.將要儲存的javabean轉成json字串(用gson工具)
2.des加密json字串
3.設定到根域名的cookie中
cookie.setDomain("kaihuangzhe.com");
解析過程:
1.遍歷所有cookie
2.找到對應的cookie
3.des解密json字串
4.還原為javabean(gson).