Apache camel 如何使用ApacheCamel进行授权?

Apache camel 如何使用ApacheCamel进行授权?,apache-camel,Apache Camel,我得提出一个邮寄要求 curl -X POST --data-binary @auth.json http://somehost.com/auth { "response": { "status": "OK", "token": "622cee5f8c99c81e87614e9efc63eddb" } } ,这将返回带有标记的JSON响应。auth.json是一个带有登录名和密码的json文件。然后我有两个选项:将令牌作为“Authorizati

我得提出一个邮寄要求

curl -X POST --data-binary @auth.json http://somehost.com/auth
{
    "response": {
        "status": "OK",
        "token": "622cee5f8c99c81e87614e9efc63eddb"
    }
}
,这将返回带有标记的JSON响应。auth.json是一个带有登录名和密码的json文件。然后我有两个选项:将令牌作为“Authorization:token”放在未来请求的头中,或者将其放在cookie中并发出其他请求。 我如何使用ApacheCamel实现这一点?如何接收HTTP响应?我把代币放在哪里? 现在我有:

public static void main(String args[]) throws Exception {
    CamelContext context = new DefaultCamelContext();
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from("file:data/inbox?noop=true")
            .to("http://somehost.com/auth");
        }
    });
    context.start();
    Thread.sleep(10000);
    context.stop(); 
}
我在./data/inbox

中有auth.json文件,因为您在我提供的Apache Camel邮件列表中发布了相同的问题

总而言之:在发送http请求之前,只需在路由中调用
setHeader(“Authorization”,constant(“622cee5f8c99c81e87614e9efc63eddb”)
。Camel将自动将此标头转换为特定于传输的(在本例中为HTTP)标头。当然,您不需要在路由中提供常量令牌,您可以使用Camel或处理器动态计算或查找令牌

您的完整路线如下所示:

context.addRoutes(new RouteBuilder() { 
    public void configure() { 
            from("file:data/out?fileName=filename.json&noop=true") 
            .setHeader("Authorization", constant("mytoken")) 
            .to("http://somehost.com/auth"); 
 } 

我已尝试设置您提到的标题。但我无法通过标题。我尝试使用exchange.getOut.setHeaders(headers),但只传递了内容类型,而没有传递授权头。有什么建议吗??