2012-03-26 56 views
0

我有一個傳出的http端點Mule 3.2.1。作爲對我的初始請求的響應,http服務器用Set-Cookie頭響應,Mule忠實地存儲這個cookie並在以下請求中使用它。 與此Cookie關聯的會話超時時,會出現問題。 然後,服務器根據請求回覆「錯誤,會話超時」等內容。 我的客戶因此收到錯誤。不能在傳出的http請求中禁用cookie在騾3.2

我的問題是,你看到一種方法來解決這個問題,或使騾子停止發送Cookie:頭?我想我也許可以添加一些東西到傳出的HTTP請求,使其不使用cookies後。我可以在發送之前向請求添加標題,但是我沒有在文檔中找到刪除Mule自動添加的標題的方法。 如果有一個辦法可以讓騾子重複HTTP請求時,響應的正文包含「會話超時」,將被粉碎:)

一些細節:

在騾子的先前版本有是可以設置的「enableCookies」屬性。在這個版本的Mule中,屬性在使用時會導致錯誤。 xml解析器在啓動時讀取mule config xml,並在屬性設置時釋放,即使代碼中仍然提到該屬性。

此外,似乎Mule-BUG 5937會導致Cookie過期日期被忽略,並且Mule-bug 5195忽略「enableCookies」屬性。看來我必須修補並修復至少三個Mule問題才能完成這項工作。即使在這些變化之後,我也不相信它會起作用,而且我會因爲時間的推移而停滯不前。當我使用一些新的3.2結構時,切換到較老的Mule版本會需要很多改變,我擔心。

當然,解決問題的另一種方法是讓http服務器停止發送「Set-Cookie:」標題,但它由另一家公司所有,不容易迅速更改。

回答

1

回覆我自己的問題在這裏.. 這是解決它的一種方法,覆蓋mule使用的cookies。 我設置出站HTTP端點:

<properties> 
    <spring:entry key="cookies"> 
     <spring:map> 
      <spring:entry key="SMSESSION" value="" /> 
     </spring:map> 
    </spring:entry> 
</properties> 

這將覆蓋SMSSESSION餅乾,這是在我的情況造成的麻煩。