我有一个运行在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会在这种情况下表现得漠不关心?
我希望它与Safari的cookie政策有关。 http://stackoverflow.com/questions/10060820/does-the-technique-for-setting-third-party-cookies-in-iframes-in-safari-still-wo –
@MartinWilson我没有设置任何cookie专门作为从那篇文章开始。这整个事情都可以在safari中正常运行,当Tomcat都在我们的网络基础架构中。我不认为你指出的这个事实适用于我的情况。你说什么? – pushya
@MartinWilson,因此Safari在应用程序的POST/laucnch期间创建了cookie(JSESSIONID)。但有些地方这个cookie正在丢失,新的Cookie正在创建,前一个会话丢失,我的应用程序内容不能完全加载 – pushya