单点登录系统中如何共享cookie

使用cookie的两个属性

  1. domain-域

    通过设置这个属性可以使多个web服务器共享cookie。domain属性的默认值是创建cookie的服务器的主机名。不能将一个cookie的域设置成服务器所在的域之外的域。

    举个例子:

    让位于a.taotao.com的服务器能够读取b.taotao.com设置的cookie值。如果b.taotao.com的页面创建的cookie把 它的path属性设置为”/”,把domain属性设置成”.taotao.com”,那么所有位于b.taotao.com的网页和所有位于a.taotao.com的网页,以及位于taotao.com域的其他服务器上的网页都可以访问(或者说是得到)这个cookie。

  1. path-路径

    表示创建该cookie的服务器的哪些路径下的文件有权限读取该 cookie,默认为/,就是创建该cookie的服务器的根目录。

具体实现

A机host设置如下: 
127.0.0.1 sso.taotao.com 
172.16.30.123 portal.taotao.com
B机host设置如下: 
127.0.0.1 portal.taotao.com 
172.16.30.123 sso.taotao.com 

同时开启两台服务器,sso为单点登录系统,portal为门户系统,portal首页点击登录按钮,可连接到sso系统的登录模块,登录成功后,sso系统设置cookie属性如下:

token="0821A9439FE4466395A2F4086538AEB4"
Cookie cookie = new Cookie("TT_TOKEN", token);
cookie.setPath("/");
cookie.setDomain("taotao.com");
response.addCookie(cookie);

此时portal服务器所在机器的浏览器得到响应信息如下 :

è¿éåå¾çæè¿°

浏览器会根据cookie的domain属性进行判断访问哪个域会携带这个cookie,因为com.taotao.portal属于taotao.com的子域,所以在这个浏览器上访问portal.taotao.com服务器下的所有路径都会携带这个cookie 。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值