2014-01-13 33 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