标题中的Camel REST路径参数 - 安全问题?

时间:2017-11-07 13:42:05

标签: rest apache-camel

据我所知,入站REST路径参数会自动映射到Camel标头。问题我怀疑这个机制可能会被利用,覆盖路由工作可能需要的Camel头(比如出站CXFRS端点的Host头,举一个例子),或者至少与它们发生冲突

为什么Camel不能完全独立于Camel头部处理请求的REST路径参数,在许多情况下,这些参数对于正确的Camel组件行为是绝对必需的?如何使用相同的名称避免两者之间的冲突,或者在最坏的情况下避免这成为安全问题?

1 个答案:

答案 0 :(得分:0)

我在这里回答您的问题,为什么骆驼为什么应该将http标头视为骆驼标头并转发其余请求。

解决此问题的方法是,在“处理器”中,使用带有模式INOUT的现有Exhange(0-原始交换)句柄创建一个交换(1)。

获得响应后,您将重新使用交换(OUT -3中的响应交换)并重新设置为Exchange(0)。

    class customProcessor implements Processor {
    void process(Exchange ogx){

         Exchange exchange = ExchangeBuilder.anExchange(camelContext)
                                     .withPattern(ExchangePattern...)
                                     .withHeader(Exchange.HTTP_METHOD, HttpMethod.GET)
                                      .build();
             Exchange  responseExchange=producer.send("the end point to rest",exchange); 
//copying the exchange which has come as response from the rest to the body of //the OGX exchange.


ogx.getIn().setBody(responseExchange.getOut().getBody())


    }

    }