coldfusion - 尝试对 Jira API 进行简单 REST 调用时连接失败

标签 coldfusion jira-rest-api coldfusion-11

我有一个简单的 GET 调用,可以在 Postman、Powershell、C# 甚至浏览器 JS(禁用 CORS 后)完美运行,但将其移植到 ColdFusion CFHTTP 调用失败。

以下是 Jira API 的响应:

{
  "ErrorDetail": "I/O Exception: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target",
  "Mimetype": "Unable to determine MIME type of file.",
  "Filecontent": "Connection Failure",
  "Statuscode": "Connection Failure.  Status code unavailable.",
  "Responseheader": {
    
  },
  "Text": true,
  "Charset": "",
  "Header": ""
}

CF代码:

<cfset jql="<redacted>">
<cfset jiraEndpoint ='https://jira.bullhorn.com/rest/api/2/search?jql=#jql#'>

<cfhttp url = "#jiraEndpoint#" result="res" method="get" username="<redacted>" password="<redacted>">    
    <cfhttpparam type="header" name="Accept" value="application/json" />    
</cfhttp>

<cfheader name="Content-Type" value="application/json">
<cfoutput>
    #serializeJSON(res)#
</cfoutput>

我尝试过的事情:

  • 使用了值为 "Basic <base64 encoded string version of username:password>" 的授权 header
  • 已添加Content-Type标题
  • 已添加mimetype标题
  • 尝试使用a third-party CFC

似乎没有什么作用。

最佳答案

Jira 的证书配置检查良好,包括其中间证书 - 您可以使用 ssllabs 或类似的测试器来确认这一点,例如 https://globalsign.ssllabs.com/analyze.html?d=jira.bullhorn.com .

在您的情况下,您看到问题的原因是您使用的是旧版本的 Coldfusion,它使用旧的 JVM,既不下载其 Digicert 中间证书,也未预安装该证书。理想情况下,您应该从 CF11 升级。

要解决此问题,您可以手动将 Digicert 中间证书 + Jira bullhorn 证书安装到服务器的 cacerts - 此操作的说明因您的环境而异,但一个示例是 https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html - 然后重新启动 CF 服务并重试 cfhttp 调用。

关于coldfusion - 尝试对 Jira API 进行简单 REST 调用时连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66084407/

相关文章:

javascript - 将单词秒转换为周、天、小时和分钟

for-loop - Adobe ColdFusion 9 分页循环问题

pdf - CFPDFForm 填充错误 - java.lang.NullPointerException : Platform, 语言环境,并且平台名称不能为空

sql - cfqueryparam 问题

jira - 使用 JIRA REST 客户端 API 访问 JIRA Agile 冲刺

linux - 目录不存在,但显然存在

sql - Coldfusion/sql ASC 顺序,末尾有空格

ssl - 从 coldfusion 发送推送通知?

rest - 在一个 JIRA Rest 请求中发布多个工作日志