2014-02-05 87 views
1

我對駱駝很陌生,所以我可能會以錯誤的方式解決這個問題,但是我將消息從一個端點路由到另一個端點並在路上轉換它們。然而,下一階段是向管道添加認證。我有一項跟蹤經過驗證的用戶的服務。我的計劃是,在路由的第一階段,添加一個篩選器,檢查當前用戶是否經過身份驗證。如果用戶不是,我想將消息轉換爲認證請求並將其發送到我的端點。到目前爲止,所有的都很好,但是,在認證之後(如果成功的話),我想把原始消息發送到管道中。這是可以做到的嗎?在Apache Camel路由中獲取以前的消息

我的路線的簡化版本是:

from("seda:in"). 
    filter(method(Authentication.class, "isNotAuthenticated")). 
    bean(AuthenticationTransformer.class) 
    to("cxfbean:out") 
    .end() 
    .bean(RequestTransformer.class) 
    .to("cxfbean:out") 

同樣的信息將被髮送給兩個變壓器豆。

+1

訪問該屬性您可以將該物體置於「安全保存」屬性上,直至稍後 - 請參閱setProperty/setBody。 – vikingsteve

回答

1

在轉換它之前,您應該在Exchange屬性setProperty("originalMessage", body())中保留該消息。之後,您可以使用getProperty("originalMessage")