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)这个参数必须以“.”开始。
    3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入: http://lc-bsp.jszx.com:8080/webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入: http://localhost:8080/webapp_b则不可以获得cookie。
    4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。
 大家可以测试哦,有啥好的方案也共享出来,大家共同学习。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值