我有一個運行在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