2014-01-13 34 views
1

我有一个运行在Tomcat 7.0.27上的应用程序,它是我们的组织网络和在Amazon Web服务上运行的第二个应用程序(这只是Tomcat 7.0.42 )。在亚马逊上运行的应用程序位于第一个应用程序的iframe中。在Amazon上运行的应用程序是自包含的,即它需要的所有文件都驻留在同一个tomcat容器内,并且不会与第一个应用程序通信。我发现整个站点在FireFox和chrome中都能正常工作。但在safari中遇到问题。在Safari中,第二个应用程序的启动是成功的(这不过是一个POST),但随后的请求(这是GET)失败。因此,在代码就是我们正在做的是,我们把POST之后的Java对象在会话这样在Safari中,会话不在后续POST和GET之间维护

SessionData result = new SessionData(request,oauthCredentials); 
request.getSession().setAttribute(SESSION_ATTR_TC_DATA, result); 
所以帖子说来是得到的第一个请求后

,当此请求进来,我们尝试获取我们在会话中放置的Java对象,如下所示。

SessionData result = (SessionData) request.getSession().getAttribute(SESSION_ATTR_TC_DATA); 
request.setAttribute(SESSION_ATTR_TC_DATA, result); 

Safari我看到,在POST会话ID(JSESSIONID)不同于在GET和所谓SessionData=null;我看到会话ID是在Firefox /铬的情况相同。

我看到,从URL/ip地址

http://one.roses.flowers.org/ #IpAddress=141.21.19.87 
http://test-dev.elasticbeanstalk.com/ #IpAddress=64.261.831.97 

我不写代码创建的任何会议。 Tomcat正在处理它。

但是当我们的组织网络中运行第一个tomcat /第二个tomcat时,这个整个事物可以在所有浏览器中工作。我看到来自URL/IP地址

http://one.roses.flowers.org/ #IpAddress=141.21.19.87 
http://five.oranges.flowers.org/ #IpAddress=141.21.19.88 

为什么Safari会在这种情况下表现得漠不关心?

+1

我希望它与Safari的cookie政策有关。 http://stackoverflow.com/questions/10060820/does-the-technique-for-setting-third-party-cookies-in-iframes-in-safari-still-wo –

+0

@MartinWilson我没有设置任何cookie专门作为从那篇文章开始。这整个事情都可以在safari中正常运行,当Tomcat都在我们的网络基础架构中。我不认为你指出的这个事实适用于我的情况。你说什么? – pushya

+0

@MartinWilson,因此Safari在应用程序的POST/laucnch期间创建了cookie(JSESSIONID)。但有些地方这个cookie正在丢失,新的Cookie正在创建,前一个会话丢失,我的应用程序内容不能完全加载 – pushya

回答

1

它在Safari中的作用是关闭cookie限制以接受第三方。对于IE也是如此。默认设置是不接受第三方cookie。对于FF/Chrome,默认选项是接受第三方Cookie。

我已经使用Webscarab工具来调试此问题。

位于iframe内部的应用程序在AmazonWebservices上,URL模式与源站点完全不同。因此浏览器认为这些呼叫是从/到某个外部站点进行的。因此,基于浏览器cookie设置,浏览器切断了iframe中的应用程序。

此外,这2个URL看起来像这样的浏览器。

http://one.roses.flowers.org/ 
http://test-dev.elasticbeanstalk.com/ 

我们添加的别名/ CNAME在较高的环境中AmazonWebservice(AWS)服务器上的项目如下图所示(QA/PROD)的东西。通过向url浏览器添加别名,不要将来自第三方的URL视为具有相同的域名。现在解决方案独立于浏览器cookie设置。

http://test-dev.elasticbeanstalk.com/ ---> http://aws.newsite.flowers.org