0

我将一些数据作为会话变量存储在 mule 流中,其中涉及对外部服务的中间流 http 调用。我需要这些数据用于流逻辑的后续分支,因此需要会话变量。但是,我不希望这些数据与 http 调用一起作为 http 标头输出。有没有办法限制在给定调用中包含哪些会话变量 mule 作为 http 标头?

4

3 回答 3

1

使用流变量:会话变量应该很少使用,尤其是要知道 Mule 默认是如何泄漏它们的。

流变量(又名调用属性)应该不受端点交互的影响,这是设计使然。任何其他行为都是错误。如果您的变量不需要比流扩展得更远,请使用流变量,而不是会话变量。

于 2013-10-10T21:27:19.450 回答
1

如果您想决定传播什么会话属性,您可以编写自定义会话处理程序并将其注入您的 http 连接器,如下所示:

<http:connector name="httpConnector">
   <service-overrides sessionHandler="your_session_handler" />  
</http:connector>

可以在此处找到自定义会话处理程序的示例

也就是说,我想回应 David Dossot 的回答:会话变量应该很少被使用,尤其是知道 Mule 默认是如何泄漏它们的。如果你想传播某些东西,你应该将它显式设置为出站属性,然后 mule 将传播它。

于 2013-10-11T12:53:47.773 回答
0

会话变量不会通过 http 调用发送,只有会话 ID 通过 cookie 发送(通常)

如果您需要通过 http 调用将一些数据传递到外部域 - 将它们包含在 GET 中,例如,因为 cookie 不共享

于 2013-10-10T21:26:26.320 回答