2014-02-05 65 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")