2013-08-20 94 views
2

我有几个流程依赖于在一个流程中生成的会话变量,然后传递给另一个流程。依靠两个异步流使用的会话变量是否安全?我想我不完全理解mule应用程序或给定mule消息中'sessionVars'的范围。依靠会话变量来存储要在多个异步流之间共享的信息是否安全?

+0

你如何调用其它这里找到流?使用'flow-ref'或VM队列? –

+0

VM队列。有什么不同? – GarySharpe

+1

虚拟机队列阻止您使用流量变量,并会使输入/输出属性复杂化,因此会话确实是您最好的选择。 –

回答

3

mule会话与跨线程共享的Java EE会话无关。 mule会话是MuleMessage的一部分,并且它们如何工作被解释为here,因此,如果您希望跨多个流程共享某些内容,以处理相同的消息,那么这是一条可行的路线。

相反,如果你正在寻找到一种方法来存储从流值处理消息一个,并挑选从流该值处理消息你应该考虑这个值存储到objectstore

0

我很确定会话变量返回到请求响应的http端点。这可能会暴露敏感数据。我试图找到原来的提及和官方缓解策略,但还没有找到它。

但是,一个简单的办法是在一个流动的折返点

编辑将其删除: 发现我一直在寻找...

` < HTTP的事情:连接器名称=“NoSessionConnector” >
            <服务覆盖sessionHandler = “org.mule.session.NullSessionHandler”/>
</HTTP:连接>

`

下的 'HTTP响应头'

http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference

或者,你也可以创建自定义SessionHandler

+0

嘿隆多,我现在真的遇到了这个问题。我现在正在查找你所引用的内容,“会话变量的缓解策略”,它会在http调用中作为标题发送出去。因为这个原因,我正要在stackoverflow上发布第二个问题。 – GarySharpe

+0

@GarySharpe我编辑了我的回复信息。 – Rondo

相关问题