将通用身份验证 header 添加到所有骆驼 restlet 路由

Add common auth header to all camel restlet route

我有一大堆路线

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 header。每个地方都设置起来会很乏味。

有没有办法,我可以 set/configure 一个 header ,在调用任何 rest API.

之前追加

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

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

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

注意:您可能必须设置其他参数,例如内容类型、HTTP 方法、其他 header、body 从传入交换到输出去交流