2012-04-27 162 views
0

我們將Form Runner/Builder集成到具有自定義持久層的項目中。Form Runner持久性,會話Cookie

現在我們將emptySessionPath =「true」設置爲保持Orbeon和我們的Java應用程序在同一個會話中。

Orbeon被傳遞JSESSIONID的cookie的持久性CRUD通話......除了以下實例....

  1. 用戶連接到我們的Java應用程序和登錄,JSESSIONID cookie設置
  2. 用戶在/ FR/OurApp/formtest /編輯/ 3eb4ddcf03f2410084e5578adb1e2a7b訪問現有表單實例(會話cookie存在)
  3. 持續來電對我們定製的持久層製成,但cookie不會轉發

但是,如果用戶是先通過調用編輯表單本身來/ FR/orbeon /建設者/編輯/ f40efbe298204d16b6474fcdfea4c9fd這確實該cookie傳遞到持久層

此時用戶可以去參觀一步2來完成表單實例,並且cookie將會持續。似乎由於某種原因,在完成表單時,需要啓動表單構建器才能讓cookie轉發到持久層?

關於爲什麼cookie沒有通過第2步的任何想法?

僅供參考這是Orbeon 3.9 CE,也是3.8中的相同行爲。使用VMWare TC服務器(Tomcat)。我們的Java應用程序是一個Spring/Grails應用程序。

+0

好的,在進一步的調查中似乎正在發生的是/ fr/app/form/edit/document沒有設置會話cookie的調用,所以沒有會話cookie轉發到持久層。 /fr/orbeon/builder/edit/document確實設置了一個會話cookie,所以這個調用和任何進一步的調用都會將一個會話cookie傳遞給持久層。 有人可以指點我如何得到/ fr/app/form/edit來設置會話cookie嗎? – 2012-04-28 03:36:54

+0

甚至強制/ fr/app/form/edit來設置一個cookie對下一個持久層調用沒有任何影響。我看到的另一個區別是... /crud/app/form/form.xhtml?document=id的持久性標頭中缺少orbeon用戶名。一旦對/ fr/orbeon/builder/edit/document進行了調用,那麼cookie和頭文件就會出現在隨後的持久性調用中,但不會在使用/ fr/app/form/edit調用時開始。 – 2012-04-28 18:01:36

+0

此外,我沒有看到任何CRUD調用檢索文件附件包括會話cookie。如果有人要將圖像上傳到他們的表單,從持久層獲取圖像將不會傳遞會話cookie。 – 2012-04-30 19:14:05

回答

0

我想知道這是否可能是this bug中所描述的(具體見註釋)。基本上,您似乎無法始終可靠地生成JSESSIONID cookie。正如該錯誤所述,我們現在還沒有解決方案。

您是否認爲該錯誤與您的情況相符?

+0

我不這麼認爲,在上週我已經閱讀了這個頁面以及Tomcat的一些bug。它沒有得到一箇舊實例混雜在一起的jsessionid。當獲取表單文件附件時,它似乎不會傳遞jsessionid ......也不是在第一次訪問/ fr/app/form/edit – 2012-05-01 21:07:54

+0

Mmh,ok!所以這意味着在這一點上我沒有答案:(要弄清楚它將需要在本地再現問題,並且事情在3.9後發生了一些變化,所以如果可能的話,最好在每晚構建中重現在所有。 – ebruchez 2012-05-03 04:39:34

+0

我正在用夜間測試來測試它,會爲您制定一些可重複的步驟。 – 2012-05-06 13:53:57