2

我有一条与 4 个 http 端点交互的路由。第一个 http 端点是一个授权服务,我将从中获得一个身份验证令牌。我想要的是,一旦我从授权服务获得令牌,我会将令牌传递给标头中的每个进一步的 http 服务。那么我该如何实现呢?有没有办法使用令牌值创建一个临时变量,如果我可以将它放在上下文中,那么我可以在任何端点中设置它。否则我在想我是否可以在应用程序启动时调用一次授权服务并将令牌存储在某处并且我可以使用它。

4

2 回答 2

2

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

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 访问NextIDexchange.getProperty("NextID")

于 2016-04-26T06:40:45.643 回答
0

您可以使用标题属性

于 2016-04-27T07:36:35.203 回答