【发布时间】: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