【问题标题】:CFHTTP Cookie IssueCFHTTP Cookie 问题
【发布时间】:2013-12-13 05:04:01
【问题描述】:

我在 Railo-Express-4.1.1.009 下的 cfhttp 遇到(我认为是)cookie 问题。

我的代码执行两步 http 调用。第一步使用远程应用程序执行授权。如果成功,远程服务器会返回一个授权 cookie,将其提取并传递给第二个调用,如下所示:

<cfhttp url="http://remoteserver/targetPath" port="xxxx" method="get" result="Local.response" throwonerror="true" redirect="false">
       <cfhttpparam name="Action" value="Ping" type="URL" />
       <cfhttpparam name="mansession_id" value="#Local.result.authCookie#" type="cookie" />
</cfhttp>

http 调用成功,但响应基本上说我没有被授权。 (这就是“权限被拒绝”在这种情况下的实际含义)。

<response='Error' message='Permission denied'... />

但是,完全相同的代码(从同一个盒子运行)在 CF9 上成功:

<response='Success' ping='Pong' ... />

我仔细检查了第一个 cfhttp 调用的响应标头,并确认我将正确的 #Local.result.authCookie# 值传递给第二个调用:

  • CFHTTP 结果 = set-cookie : mansession_id="932a4086";
  • Local.result.authCookie = AUTHCOOKIE string 932a4086

由于除了运行 cfml 的引擎之外一切都相同,我得出的结论是 cfhttp 可能没有正确传递 cookie。我已经尝试了很多东西,但我现在没有想法。任何有关如何解决问题或进一步排除故障的想法将不胜感激。

更新:

我决定尝试不同版本的 Railo(因为 Express 版本让它变得如此简单),发现代码在 3.3.3.001 下工作(但不是 4.0.4.001)。所以必须在 4.x 中打破某些东西。

【问题讨论】:

    标签: http cookies coldfusion railo


    【解决方案1】:

    我会安装Fiddler,然后将proxyServer=localhost 和proxyPort=8888 属性添加到CFHTTP 调用中。然后,您可以看到 HTTP 请求通过 fiddler 发出。如果您的 CF 服务器在另一个机器上,您仍然可以在桌面上运行 Fiddler,只需在 Fiddler 的设置中打开“允许其他机器连接”并在 proxyServer 属性中提供您的机器名称而不是 localhost。

    您的处境非常好,您可以在某些环境中而不是其他环境中工作,因此您应该能够以不同的方式看到正在发生的事情。

    您可以手动比较 http 请求,也可以将 Fiddler 配置为使用差异工具。选择两个请求,然后右键单击->比较。我强烈推荐 Scooter Software 的 Beyond Compare 3 作为差异工具。

    请根据您的发现更新您的问题,因为我想知道结果。

    【讨论】:

    • 好主意。我今天必须拿出一些东西,但明天我会试一试。
    • 提琴手成功了。 cookie 选项卡显示我设置的 cookie 没有以相同的方式传输。 3.x 版设置了一个 cookie,但 4.x 版创建了多个 cookie。仍在调查是代码还是 Railo 问题(可能是代码),但 Fiddler 提供了巨大帮助。再次感谢! (我也很想投票,但我还没有足够的代表......)
    • 很高兴这对你有用!虽然它并不理想,但如果您需要更好地控制您发送的内容,Railo 在后台使用 HTTPClient,因此您几乎可以肯定地使用它而不是 CFHTTP 来发出请求:hc.apache.org/httpcomponents-client-ga/quickstart.html
    猜你喜欢
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多