Coldfusion cfhttp返回对等体未经过身份验证

时间:2015-08-11 21:05:19

标签: json oauth coldfusion flickr

我正在尝试使用Coldfusion(Coldfusion 8)从Flickr使用他们的API获取用户的身份验证令牌。我已经写了一些来从令牌中获取必要的东西,它作为查询字符串返回。现在,我使用以下代码尝试接收包含用户数据的JSON响应。并将被我的Flickr应用程序的密钥和秘密所取代。

<cfif structKeyExists(URL,"frob")>
    <cfset apiKey =  "<myapikey>" />
    <cfset apiSecret =  "<myapisecret>" />
    <cfset frob = #URL.frob# />
    <cfset apiSig = Hash(apiSecret & "api_key" & apiKey & "formatjson" & "frob" & frob & "methodflickr.auth.getTokenpermsread", "MD5") />
    <cfset flickrUrl = "https://flickr.com/services/rest/?method=flickr.auth.getToken&api_key=" & apiKey & "&perms=read" & "&format=json" & "&frob=" & frob & "&api_sig=" & apiSig />
    <cflocation url = "#flickrUrl#" addToken = "false" />
    <cfhttp
      method = "GET"
      url = "#flickrUrl#"
      resolveurl = "Yes"
      result = "result" />
    <cfdump var = "#result#" />
</cfif>

然而,cfdump只是说同行未经过身份验证。我可以使用cflocation来查看我应该接收的JSON数据,但我不知道如何访问它并使用Coldfusion解析它。

<cflocation url = "#flickrUrl#" addToken = "false" />

1 个答案:

答案 0 :(得分:0)

您是否在Java密钥库中安装了flickr证书?

Adob​​e ColdFusion文档:

  

为了通过SSL安全连接到远程服务器,所有当前版本的ColdFusion都要求远程系统的SSL证书存在于ColdFusion的证书信任库中。

https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html

此外,在安装flickr证书之前,您需要下载它。 您可以使用Chrome:

  1. 在Chrome中打开flickr
  2. 点击地址栏中的锁定图标
  3. 点击连接
  4. 单击证书信息对于Mac,您只需获取证书即可 您的桌面使用鼠标,对于Windows,其详细信息选项卡和&#34;复制到文件&#34; ...
  5. 获得证书后,您需要将证书导入密钥库。 您需要找到ColdFusion安装使用的JVM并将其导入。 Java keytool命令因版本而异,但CF甚至可以很好地记录它:

    https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html

    哦,当然,不要忘记在导入后重启你的ColdFusion服务器 ......