Mule 在出站HTTP调用之间保留cookie

Mule 在出站HTTP调用之间保留cookie,mule,Mule,我有一个Mule应用程序,它侦听来自一个应用程序的请求,然后通过多次调用JSON API来进行响应,以进行身份验证,然后检索多个数据,进行一些转换,并返回结果。该API需要HTTP基本身份验证。当帐户进行身份验证时,提供API的应用程序1)返回会话/身份验证cookie,该cookie可用于在后续调用中标识当前用户,2)更新数据库以记录当前用户的最后一次身份验证时间戳。API还调用检查会话/身份验证cookie是否仍然有效 我目前有一个调用身份验证方法的流,然后继续使用会话/身份验证cookie

我有一个Mule应用程序,它侦听来自一个应用程序的请求,然后通过多次调用JSON API来进行响应,以进行身份验证,然后检索多个数据,进行一些转换,并返回结果。该API需要HTTP基本身份验证。当帐户进行身份验证时,提供API的应用程序1)返回会话/身份验证cookie,该cookie可用于在后续调用中标识当前用户,2)更新数据库以记录当前用户的最后一次身份验证时间戳。API还调用检查会话/身份验证cookie是否仍然有效

我目前有一个调用身份验证方法的流,然后继续使用会话/身份验证cookie进行一系列调用

问题在于,当Mule应用程序一次收到多个请求时,提供API的应用程序会死锁,试图更新身份验证时间戳,因为流将对每个请求进行一次身份验证。是否有一种方法(可能使用对象存储)来存储会话/身份验证cookie,以供对Mule流的后续请求使用?基本上,我希望流挂起对同一流的所有其他请求,检查是否有存储的cookie,检查它们是否仍然有效,验证(再次或首次)以获取新会话/验证cookie(如果需要),存储新cookie,然后继续

这是一种合理的方式吗?甚至可能吗?如果不是的话,我想你可以了解我想要完成的事情的要点。还有什么更好的办法?谢谢


编辑:我做了一些实验,我完全可以使用对象存储来保存cookie。我现在一直想知道的是,如果在任何几乎同时发生的请求等待时没有有效的cookie,我如何获得唯一的第一个重新验证请求。我正在研究VM队列和Mule请求程序,但我不确定这是否有效。完成后,我将发布完整功能测试的代码。

为什么“cookies”用复数?仅仅拥有一个有效的cookie还不够吗?所有执行远程HTTP调用的线程都不能共享一个有效的cookie吗?我对cookie使用复数形式,因为经过身份验证的会话由两个cookie标识,尽管在这个问题的上下文中,我看到这可能会造成混淆。我对问题进行了编辑,以讨论单个cookie,因为在实践中,无论识别经过身份验证的会话需要多少cookie,它都是相同的。所以,是的,一个有效的cookie就足够了,一个有效的cookie被所有执行远程HTTP调用的线程共享正是我想要做的。