http-headers - 如何在 Camel 上下文中创建临时变量以供以后在路由中使用

标签 http-headers apache-camel cross-cutting-concerns

我有一个与 4 个 http 端点交互的路由。第一个 http 端点是一个授权服务,我将从中获得一个身份验证 token 。我想要的是,一旦我从授权服务获得 token ,我会将 token 传递给 header 中的每个进一步的 http 服务。那么我怎样才能做到这一点呢?有没有什么方法可以使用 token 值创建临时变量,如果我可以将其放置在上下文中,那么我可以在任何端点中设置它。 否则我在想是否可以在应用程序启动时调用一次授权服务并将 token 存储在某处以便我可以使用它。

最佳答案

您可以在交换对​​象上存储属性:

http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#setProperty(java.lang.String,%20java.lang.Object)

例如,在我的“管道”中,我存储数据库中的 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")

访问 NextID

关于http-headers - 如何在 Camel 上下文中创建临时变量以供以后在路由中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856831/

相关文章:

java - 与Camel并行处理大型SQL表

java - 如何立即停止Camel Context?

c# - 如何处理 ASP.NET MVC 3 应用程序中的横切关注点?

web-services - groovy 是否提供包含机制?

security - CQRS 应用跨领域问题,例如安全性

node.js - 在 Koa 中设置多个 cookie header

http-headers - 静态 Assets 的 Netlify header 缓存控制

http - 我可以根据向我们发送内容长度 header 的要求来验证和拒绝请求吗?

http - utmscr 或 utmcct 值在引用 Http cookie 服务器变量时意味着什么?

java - Apache camel netty 自定义编码器和解码器示例