我有几个流依赖于在一个流中生成的会话变量,然后传递给另一个流。依赖两个异步流使用的会话变量是否安全?我想我并不完全理解骡子应用程序或给定骡子消息中'sessionVars'的范围。
答案 0 :(得分:3)
mule会话与跨线程共享的Java EE会话无关。 mule会话是MuleMessage的一部分,它们如何工作解释here,因此,如果你想在多个流程中共享某些东西,处理相同的消息,那就是最佳选择。
如果您正在寻找一种方法来存储处理消息 A 的流的值,并从处理消息 B 的流中选择该值,您应该考虑将此值存储到objectstore
中答案 1 :(得分:0)
我很确定会话变量会返回到请求响应的http端点。这可能会暴露敏感数据。我试图找到原始提及和官方缓解策略,但尚未找到它。
但一个简单的解决方案是在流程的返回点删除它们
编辑: 找到了我想找的东西......
`
< http:connector name =“NoSessionConnector”>
< service-overrides sessionHandler =“org.mule.session.NullSessionHandler”/>
< / http:connector>
`
在'HTTP Response Header'
下找到http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference
或者,您也可以创建自定义SessionHandler