Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 会话Cookies和IE 8_Java_Internet Explorer_Tomcat_Sessionid - Fatal编程技术网

Java 会话Cookies和IE 8

Java 会话Cookies和IE 8,java,internet-explorer,tomcat,sessionid,Java,Internet Explorer,Tomcat,Sessionid,我最近构建了一个部署在Tomcat上的简单web应用程序。该应用程序使用了相当标准的基于会话的安全性,其中已登录的用户将获得一个会话 会话在Firefox和Chrome中工作正常,但需要在IE的URL中使用jsessionid(测试7和8),设置为中等隐私。在IE8中,我试图覆盖cookie处理,设置“允许所有第三方cookie”和“允许所有会话cookie”-无骰子。然而,当我在本地机器上运行Tomcat时,IE接受cookie,会话工作正常 现在,对于HTTP头 从Chrome,登录用户可以

我最近构建了一个部署在Tomcat上的简单web应用程序。该应用程序使用了相当标准的基于会话的安全性,其中已登录的用户将获得一个会话

会话在Firefox和Chrome中工作正常,但需要在IE的URL中使用jsessionid(测试7和8),设置为中等隐私。在IE8中,我试图覆盖cookie处理,设置“允许所有第三方cookie”和“允许所有会话cookie”-无骰子。然而,当我在本地机器上运行Tomcat时,IE接受cookie,会话工作正常

现在,对于HTTP头

从Chrome,登录用户可以获得一个会话

GET http://devl:8080/testing/ HTTP/1.1
Host: devl:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1036 Safari/532.5
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
P3P: CP="NON CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT STA"
Set-Cookie: JSESSIONID=9280023BCE2046F32B13C89130CBC397; Path=/testing
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 2450
Date: Fri, 26 Mar 2010 14:14:40 GMT

GET http://devl:8080/testing/logout HTTP/1.1
Host: devl:8080
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1036 Safari/532.5
Referer: http://devl:8080/testing/
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=9280023BCE2046F32B13C89130CBC397

...
来自IE 8,具有标准的中级安全和隐私-

GET http://devl:8080/testing/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; Tablet PC 2.0)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Host: devl:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
P3P: CP="NON CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT STA"
Set-Cookie: JSESSIONID=192999F922D6E9C868314452726764BA; Path=/testing
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Content-Length: 2450
Date: Fri, 26 Mar 2010 14:32:34 GMT

GET http://devl:8080/testing/logout HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://devl:8080/testing/;jsessionid=6371A83EFE39A46997544F9146AA5CEA
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; Tablet PC 2.0)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: devl:8080

...
我原以为可能是P3P,但在添加一个紧凑的策略后,一切都没有改变。这是标准的Tomcat会话,所以我真的很惊讶到目前为止我还没有找到其他有同样问题的人。有人有什么想法吗

2010年4月3日编辑-

对不起,如果我没有说清楚的话,我已经试过了,从大厅里的其他多个IE同事的例子中,等等

2010年4月3日编辑-


我还尝试打开所有cookie的提示,但没有得到提示。使用Fiddler在“Set Cookie”标题中设置域也没有什么区别。

这显然与Tomcat无关,因为Cookie正在设置中-只是IE不接受。这一定是IE中的安全问题。
可能会有助于调整它。

您检查过服务器时间是否正确了吗


我最近也遇到过类似的问题,就是不能正确地接受饼干。经过一番深思熟虑,结果证明这是因为服务器和客户机之间的时间差太大,IE拒绝接受cookie。不过,这是在Apache中实现的。

尝试使用标准HTTP端口(80)。我不止一次读到关于IE中隐私/安全的URL端口号问题,但目前似乎找不到相关链接。

dev1站点属于哪个安全区域?IE根据哪个区域(以及该区域的配置方式)不同地处理cookie和许多其他安全性

例如,尝试将dev1站点显式设置为受信任站点的一部分,看看会发生什么

分区:

Internet
Local Intranet
Trusted Sites
Restricted Sites

此外,cookie是否必须限制在/测试路径?试着为/设置它,看看这是否有区别。

我会尝试使用服务器的完全限定主机名。MSIE将没有域的主机名视为位于“本地intranet”中,并以不同的方式处理安全性

具体而言,不是:

http://devl:8080/testing/
尝试使用以下方法:

http://devl.mydomain.com:8080/testing/

我同意Lexicore的观点——web服务器上的cookie协议看起来是正确的,因此IE也有一些东西。如果我们能更好地理解IE拒绝cookie的原因,就更容易找到解决问题的方法。或者,请朋友在IE中为您访问该站点,以帮助确认这是服务器问题,而不是浏览器实例问题

这里有一些东西要检查,以帮助调试IE和cookies-不幸的是,有一大堆选项要检查。抱歉,如果这些项目中有一些看起来是基本的-我只是不想做任何假设。为此,我将在IE 8.0中进行跟踪

首先,浏览到IE中的目标站点(),然后:

  • 确认IE将哪个区域划分为“”。(这可以解释为什么它可以在本地机器上与Tomcat一起工作。)该区域显示在浏览器的底部栏中,很可能显示为“Internet”。如果它改为“本地内部网”、“受信任的站点”或“受限制的站点”,这可能是问题的一部分,您应该更新您的问题,或者找出为什么它不被归类为Internet

  • 双击底部栏中的区域指示器(可能是“Internet”)打开安全对话框。Internet的安全级别是否设置为中高?如果不是,这可能是问题的一部分,您可能应该重新设置它以匹配您的用户

  • 选择“Internet”区域,然后单击“自定义级别…”按钮打开安全设置对话框。确认“Userdata persistence”选项设置为“Enable”。“Userdata persistence”选项位于“miscellanous”部分选项列表的底部1/4处(靠近下一部分“Scripting”上方的部分底部)

  • 在每个对话框上单击“确定”以关闭这两个对话框

  • 在菜单栏上(如果未启用,则启用),单击“工具”>“Internet选项”。选择“隐私”选项卡。我知道你提到你在这里尝试了一些东西,但是如果你的网站不在Internet区域或者你的网站在“每个网站隐私行动”例外列表中,这些更改可能不会影响你的网站,所以最好只是确认一下

  • “隐私”选项卡中的隐私设置是否设置为“中等”?如果不是,您可能希望重置为默认值

  • 单击“站点”按钮打开“每个站点隐私操作”对话框。是否列出了您的dev1站点?如果是,请将其拆下。单击“确定”关闭该对话框。或者,您可以强制您的dev1站点始终允许cookie

  • 单击“高级”按钮。是否选中“覆盖自动cookie处理”复选框?如果是,您可能希望取消选中该复选框以匹配您的用户。或者,尝试选中该复选框并选中“始终允许会话cookie”

  • 在每个对话框上单击“确定”以关闭这两个对话框

  • 确认浏览器仍在目标站点(“”)。单击“查看”>“网页隐私策略…”以查看“隐私报告”对话框。列表是否包含“”?Cookie列是否表示“”已接受“”

  • 从列表中选择“”。单击摘要以查看隐私策略。如果为您的站点设置了隐私策略,您应该在此处看到它。否则,您应该会收到一条消息,表明未找到隐私策略。查看对话框底部以查看该站点如何设置为使用Cookie(比较、始终允许或n
    setcookie($name,$value,time()+1200);
    
    setcookie($name,$value,time()+120000);