我将一些数据作为会话变量存储在一个包含对外部服务的中流http调用的mule流中。我需要这个数据用于流逻辑的后续分支,因此是会话变量。但是,我不希望这些数据作为http标头与http调用一起出去。有没有办法限制mule包含哪些会话变量作为给定调用中的http标头?
答案 0 :(得分:1)
使用流量变量:很少使用会话变量,特别是在默认情况下了解Mule如何泄漏它们。
流量变量(也称为调用属性)应该不受端点交互的影响,这是设计的。任何其他行为都是一个错误。如果您的变量不需要比流扩展更远,请使用流变量,而不是会话变量。
答案 1 :(得分:1)
如果要确定要传播的会话属性,可以编写自定义会话处理程序并将其注入http连接器,如下所示:
<http:connector name="httpConnector">
<service-overrides sessionHandler="your_session_handler" />
</http:connector>
可以找到自定义会话处理程序的示例here
那说我想回应David Dossot的回答:会话变量应该很少使用,特别是知道Mule默认如何泄漏它们。如果要传播某些内容,则应将其明确设置为出站属性,并且mule将传播它。
答案 2 :(得分:0)
会话变量不会通过http调用发送,只有会话ID通过cookie(通常)发送
如果您需要通过http调用将一些数据传递到外部域 - 例如,将它们包含在GET中,因为cookie不是共享的