Coldfusion cfhttp 返回对等端未经过身份验证
Coldfusion cfhttp returning peer not authenticated
我正在尝试使用 Coldfusion (Coldfusion 8) 通过 API 从 Flickr 获取用户的身份验证令牌。我已经写了一些从令牌中获取必要的东西,它作为查询字符串返回。现在,我正在使用以下代码尝试接收 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" />
您是否在 Java 密钥库中安装了 flickr 证书?
Adobe ColdFusion 文档:
For secure connections to remote servers over SSL, all current versions of ColdFusion require the remote system's SSL certificate to exist in ColdFusion's certificate truststore.
https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html
另外,在安装flickr证书之前,您需要下载它。
您可以为此使用 Chrome:
- 在 Chrome
中打开 flickr
- 单击地址栏中的锁定图标
- 单击连接
- 点击Certificate Information For Macs你可以直接获取证书到
你的桌面用鼠标,Windows 其详细信息选项卡和 "Copy to File"...
获得证书后,您需要将证书导入密钥库。
您需要找到 ColdFusion 安装使用的 JVM 并将其导入那里。
Java keytool 命令因版本而异,但即使是 CF 也很好地记录了它:
https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html
哦,当然,不要忘记在导入后重新启动您的 ColdFusion 服务器...
我正在尝试使用 Coldfusion (Coldfusion 8) 通过 API 从 Flickr 获取用户的身份验证令牌。我已经写了一些从令牌中获取必要的东西,它作为查询字符串返回。现在,我正在使用以下代码尝试接收 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" />
您是否在 Java 密钥库中安装了 flickr 证书?
Adobe ColdFusion 文档:
For secure connections to remote servers over SSL, all current versions of ColdFusion require the remote system's SSL certificate to exist in ColdFusion's certificate truststore.
https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html
另外,在安装flickr证书之前,您需要下载它。 您可以为此使用 Chrome:
- 在 Chrome 中打开 flickr
- 单击地址栏中的锁定图标
- 单击连接
- 点击Certificate Information For Macs你可以直接获取证书到 你的桌面用鼠标,Windows 其详细信息选项卡和 "Copy to File"...
获得证书后,您需要将证书导入密钥库。 您需要找到 ColdFusion 安装使用的 JVM 并将其导入那里。 Java keytool 命令因版本而异,但即使是 CF 也很好地记录了它:
https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html
哦,当然,不要忘记在导入后重新启动您的 ColdFusion 服务器...