【问题标题】:Add common auth header to all camel restlet route向所有骆驼restlet路由添加通用身份验证标头
【发布时间】:2019-03-19 13:04:46
【问题描述】:

我有很多路线

from("restlet://api1").to("dest1-rest-url");
from("restlet://api2").to("dest2-rest-url");
from("restlet://api3").to("dest3-rest-url");
..
from("restlet://api100").to("dest100-rest-url");

所有路由都分布在不同的文件中。

现在,所有目标 rest url 都需要设置一个 AUTH 标头。在每个地方都设置会很乏味。

有没有办法,我可以设置/配置一个标头,在调用任何其他 API 之前附加。

【问题讨论】:

    标签: rest header apache-camel authorization restlet


    【解决方案1】:

    添加一个解决了我部分问题的答案

    interceptFrom("restlet*").process( e -> { e.getOut().setHeader("Authorization":"Basic <authkey>"); });
    

    注意:您可能需要设置其他参数,例如内容类型、HTTP 方法、其他标头、从传入交换到传出交换的正文。

    【讨论】:

      【解决方案2】:

      恕我直言,一个可能且优雅的解决方案是使用 Camel 拦截器。 在“interceptSendToEndpoint”上使用通配符,您应该能够拦截对“restlet*”(或“http*”端点)的所有调用,以便在继续之前插入/添加“Authorization”http 标头路线。 更多信息在这里: http://camel.apache.org/intercept.html

      【讨论】:

      • 虽然它不能解决问题。我给你。这种通配符方法应该可以帮助其他人
      • 您可以发布您尝试过的内容吗?我很确定它应该起作用。
      • 检查我的答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多