我有一个与 4 个 http 端点交互的路由。第一个 http 端点是一个授权服务,我将从中获得一个身份验证 token 。我想要的是,一旦我从授权服务获得 token ,我会将 token 传递给 header 中的每个进一步的 http 服务。那么我怎样才能做到这一点呢?有没有什么方法可以使用 token 值创建临时变量,如果我可以将其放置在上下文中,那么我可以在任何端点中设置它。 否则我在想是否可以在应用程序启动时调用一次授权服务并将 token 存储在某处以便我可以使用它。
最佳答案
您可以在交换对象上存储属性:
例如,在我的“管道”中,我存储数据库中的 ID 以供以后使用:
from("quartz2://myScheduler?cron=0+0+6,14,22+*+*+?")
.to("sql:" + getNextID() + "?dataSource=#dataSource&outputType=SelectOne")
.setProperty("NextID", simple("${body[id]}"))
然后,可以从交换 exchange.getProperty("NextID")
关于http-headers - 如何在 Camel 上下文中创建临时变量以供以后在路由中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856831/