`
xly_971223
  • 浏览: 1277434 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
1.可在同一应用服务器内共享方法:设置cookie.setPath("/");
    本机tomcat/webapp下面有两个应用:cas和webapp_b,
    1)原来在cas下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
    2)若在cas下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面获取到cas设置的cookie了。
    3)此处的参数,是相对于应用服务器存放应用的文件夹的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享cookie,而cookie.setPath("/webapp_b/");是指cas应用设置的cookie只能在webapp_b应用下的获得,即便是产生这个cookie的cas应用也不可以。
    4)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。
    5)设置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,这样就不可以在产生cookie的应用cas下面获取cookie了
    6)有多条cookie.setPath("XXX");语句的时候,起作用的以最后一条为准。
    6)设置多个path的方法???

2.跨域共享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下面共享。
    5)设置多个域的方法???
最近的工作经常用到cookie,看了一些资料,虽然原来依赖cookie比较多的方案已经改成现在这个了,但是当时看得一些东西还是最好记下来,免得过些天就一干二净了,怪可惜的。老梁说过这样的文字最好不要是纯文本的,说得是。本来就已经很抽象了,最好弄点图表,就算用123列出来也好
分享到:
评论
10 楼 leo_soul 2016-04-24  
现在不能跨1级域名了吧?比如www.aaa.com,www.bbb.com。
9 楼 dsjt 2015-05-07  
引用
setDomain(".jszx.com");
2)这个参数必须以“.”开始。



项目用IP做域名怎么办?
8 楼 windtalkers 2007-08-22  
太感谢楼主了!!!!!!
7 楼 flyjie 2006-11-24  
差沙 写道
仅仅是设置,不能更改吧?

为什么设置了其他domain之后,自己还能访问?


你修改cookie时,要重新设置一下cookie生成时的path和domain~~不然修改是不生效的~~
引用
Ok. Now I see the Set-Cookie coming back to the browser header to kill off the cookie, but on then next request, the browser is still sending the cookie to the server! After much stuffing around I noticed that when I created the cookie, the Set-Cookie header has a path and domain, but when I delete the cookie there's no such beast. You'd think I could call Cookie.getDomain() and Cookie.getPath() on the cookie I retrieve from the request. No cigar. The browser doesn't tell you that stuff, so you just get nulls.

So then I changed my deleteCookie routine to call the same code that generated the Cookie in the first place (with domain, path, and age), and call setMaxAge(0) on that and add it to the response. All good.


http://blogs.bytecode.com.au/glen/2006/03/31/1143750630535.html

6 楼 zhangwh6882 2006-11-21  
b应用还需要跟cas共用cookie数据,只能说明设计上存在严重问题。如果cas管理几个不同域名下的应用,你还要在cas上给每个域设cookie?
5 楼 xly_971223 2006-11-21  
sorphi 写道
引用
2.跨域共享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。


照你这样说,你的web应用可以去影响其他你并不拥有的域名的cookie了?


对,可以这么说,设置了共享cookie之后,所有的*.jszx.com的域名都可以共享这个cookie
另外这个cookie是保存在浏览器中的 而不是以文件的形式保存在C:\Documents and Settings\xuly\Cookies目录下的

说明一下 这篇文章是从别的地方收藏过来的 作者给忘记了:)
4 楼 jianfeng008cn 2006-11-21  
针对功能说得很好,但是道理只有一个何不讲明白呢。你这里是服务器端对cookie的设置,当然会影响到他的使用,cookie在客户端如何被识别是哪个应用下,根据的就是这个名称嘛,难道你没有用js来操作过cookie吗。
3 楼 差沙 2006-11-20  
仅仅是设置,不能更改吧?

为什么设置了其他domain之后,自己还能访问?
2 楼 sorphi 2006-11-17  
引用
2.跨域共享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。


照你这样说,你的web应用可以去影响其他你并不拥有的域名的cookie了?
1 楼 enhydra 2006-11-16  
不错
收藏一下

相关推荐

    ajax跨域实例

    在本文中,我们将讨论两个 Ajax 跨域实例,分别使用 JSONP 和 jQuery 来实现跨域操作。 知识点一:JSONP 跨域 JSONP(JSON with Padding)是一种用于跨域操作的技术,它可以突破浏览器的同源策略限制。JSONP 的...

    跨域访问解决方案,关于跨域访问cookie的资料

    其原理是利用`<script>`标签没有跨域限制的特点,通过动态插入`<script>`标签来实现跨域请求。 2. **CORS(Cross-Origin Resource Sharing)**:即跨源资源共享,这是一种更为现代且通用的解决方案。它通过HTTP...

    sockJs实现的websocket跨域

    通过这种方式,我们就成功地利用SpringBoot和SockJS实现了WebSocket的跨域通信。需要注意的是,实际应用中应根据具体需求调整CORS配置,避免安全风险。同时,处理WebSocket消息时要确保数据的安全性和有效性。

    解决JS跨域访问IFrame的解决方案

    在JSP中,可能通过HttpClient向IFrame加载的源发送请求,获取数据,然后在服务器端处理后返回给JSP页面,间接实现跨域通信。 综上所述,解决JS跨域访问IFrame的问题,需要根据实际需求和环境选择合适的解决方案,...

    实现跨域例子内附说明.zip

    本资料包提供了一个实现跨域请求接口的实例,帮助开发者理解并实际操作跨域请求。下面将详细介绍跨域请求的基本概念、工作原理以及如何在实践中设置和使用。 1. **什么是跨域** 跨域是指浏览器阻止一个域下的...

    PHP实现cookie跨域session共享的方法分析

    3. `b.com/synclogin.php`再嵌入一个指向`a.com/callback.php`的iframe,通过JavaScript与父级(`a.com`)进行通信,实现跨域操作。 ```php // a.com/login.php setcookie("sso", $sso); echo 'login success...'; ...

    ziilaa_uc(JS跨域操作工具:uc v1.0)

    在JavaScript中,可以通过创建Java Applet或者使用Java Web Start技术来调用Java代码,实现跨域功能。 4. chinaz.com.txt - 这可能是一个包含示例数据或者配置信息的文本文件。可能是为了演示uc工具如何处理特定的...

    cookie 跨域

    在实际操作中,可能需要调整JavaScript代码以指向正确的位置,确保跨域请求能够正确处理Cookie。 首先,我们来了解下Cookie的基本概念。Cookie是服务器发送到用户浏览器并存储的一小块数据,主要用于保持用户的会话...

    js跨域操作页面素材

    "跨域操作页面素材"这一主题涉及到了如何利用JavaScript绕过这些限制,实现不同源之间数据的交换和资源共享。 同源策略是浏览器为了保护用户安全而设立的一项安全机制,它阻止了一个源的文档或脚本获取或修改另一个...

    基于Spring和Spring MVC实现可跨域访问的REST服务

    这篇博客“基于Spring和Spring MVC实现可跨域访问的REST服务”深入探讨了如何使用这两个流行的Java框架来创建这样的服务。Spring作为核心框架提供依赖注入和整体架构支持,而Spring MVC作为其Web模块,专门用于构建...

    ISP接口实现跨域.rar

    在这个“ISP接口实现跨域.rar”压缩包中,我们关注的是如何在易语言环境下,利用ISP接口来解决Web应用中的跨域问题。 跨域是Web开发中的一个重要概念,由于浏览器的同源策略限制,JavaScript不能随意访问不同源的...

    通过nginx实现跨域请求

    标题 "通过nginx实现跨域请求" 涉及的核心知识点是网络编程中的跨域问题以及如何利用Nginx服务器作为代理来解决这个问题。Nginx是一个高性能的HTTP和反向代理服务器,它常用于配置和管理网站的访问规则,包括处理...

    js设置document.domain实现跨域的注意点分析

    在这种情况下,JavaScript提供了一种方法,即通过设置`document.domain`属性来实现跨域操作。本文将详细介绍使用`document.domain`实现跨域的注意点。 #### document.domain属性的作用 `document.domain`是一个可...

    WebUploadTest(跨域)

    5. JSONP(JSON with Padding):在不支持CORS的旧版本浏览器中,开发者可能会使用JSONP来实现跨域请求。JSONP通过动态插入`<script>`标签来实现跨域,但仅限于GET请求,且没有错误处理机制。 6. CORS预检请求...

    finereport跨域打印文档

    在进行跨域打印时,可能会遇到浏览器的安全策略限制,这需要开发者通过特定的技术手段来实现跨域访问和打印功能。 1. **同源策略**:同源策略是浏览器为了保障用户信息安全而设定的一种安全机制,它规定JavaScript...

    MVC中跨域解决方案

    为了解决这个问题,MVC框架提供了多种策略和配置,允许我们实现跨域请求。在这个案例中,我们将详细探讨如何在MVC中设置跨域。 1. CORS(Cross-Origin Resource Sharing,跨源资源共享):这是解决跨域问题的主要...

    完美解决iframe跨域问题

    本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换代理实现。 **一、iframe跨域的基本概念** 1. **什么是iframe**:iframe是一种HTML元素,允许在单个网页中嵌入另一个网页。它通过...

    JQury实现Ajax跨域访问

    **jQuery实现Ajax跨域访问** 在Web开发中,由于同源策略的限制,JavaScript通常只能对同一域名下的资源进行操作。然而,有时我们需要从不同源获取数据,这就是跨域访问的需求。jQuery通过Ajax提供了跨域请求的能力...

Global site tag (gtag.js) - Google Analytics