无法在Mule 3.2中禁用传出http请求中的cookie

时间:2012-03-26 18:00:31

标签: http cookies mule

我在Mule 3.2.1中有一个传出的http端点。作为对我的初始请求的响应,http服务器使用Set-Cookie标头进行响应,并且Mule尽职地存储该cookie并将其用于以下请求。 当与此cookie相关联的会话超时时,我的问题就来了。 然后,服务器在请求上回复类似“错误,会话超时”的内容。 然后我的客户收到错误。

我的问题是,您是否看到了解决此问题的方法,或者让Mule停止发送Cookie:标头?我想我可以在传出的http请求中添加一些内容,使其不再使用cookies。我可以在发送之前向请求添加标头,但是我没有在文档中找到一种方法来删除Mule自动添加的标头。 如果有一种方法可以让Mule在响应的主体包含“会话超时”时重复http请求,那将会粉碎:)

一些细节:

在以前的Mule版本中,您可以设置“enableCookies”属性。在此版本的Mule中,该属性在使用时会导致错误。 xml解析器在启动时读取mule config xml,并在设置属性时保释,即使代码中仍然提到该属性。

此外,似乎Mule-BUG 5937导致cookie过期日期被忽略,并且Mule-bug 5195忽略了“enableCookies”属性。似乎我必须修补并修复至少三个Mule问题才能使其工作。我不相信它会在这些变化之后发挥作用,而且我时间紧张。我担心,切换到较旧的Mule版本需要进行大量更改,因为我使用了一些新的3.2结构。

当然,另一种解决问题的方法是让http服务器停止发送“Set-Cookie:”标题,但它由另一家公司拥有,并且不容易快速更改。

1 个答案:

答案 0 :(得分:1)

在这里回答我自己的问题.. 这是解决它的一种方法,覆盖Mule正在使用的cookie。 我在出站的http端点上设置了它:

<properties>
    <spring:entry key="cookies">
        <spring:map>
            <spring:entry key="SMSESSION" value="" />
        </spring:map>
    </spring:entry>
</properties>

这会覆盖SMSSESSION cookie,这会导致我的问题。