1. 程式人生 > >http Cookie跨域操作

http Cookie跨域操作

最近客戶端開發新功能時,由於服務端跨域,導致cookie不能自動傳遞,引發一些列問題,如B服務端無法判斷使用者是否已經登陸,在研究了org.apache.http.client.cookie原始碼後,分享下心得,網上這方面的帖子比較少,只是本人的一些小看法,有啥不懂的大家可以繼續討論:

目前遇到的問題:

客戶端A與伺服器B互動的cookie無法正常傳遞給伺服器C,導致客戶端A請求C服務端時,C服務端無法判斷客戶端A的是否登陸狀態,

解決方案:

在請求C服務端時,從傳送請求的HttpClient裡獲取所有的cookie值,手動新增到請求的request裡,這樣C服務端就可以獲取正確的cookie了,從而實現了cookie的共享。

       獲取cookie的方法 List<Cookie> cookies = lClient.getDelegate().getCookieStore().getCookies();

總結:網上還有其它方案:

跨域共享cookie的方法:設定cookie.setDomain(".jszx.com");

 A機所在的域:home.langchao.com,A有應用cas     B機所在的域:jszx.com,B有應用webapp_b     1)在cas下面設定cookie的時候,增加cookie.setDomain(".jszx.com");,這樣在webapp_b下面就可以取到cookie。     2)這個引數必須以“.”開始。     4)設定了cookie.setDomain(".jszx.com");,還可以在預設的home.langchao.com下面共享。  大家可以測試哦,有啥好的方案也共享出來,大家共同學習。