詹金斯:nexusPolicyEvaluation 失败 "Could not verify application public id from IQ Server"

Jenkins: nexusPolicyEvaluation fails with "Could not verify application public id from IQ Server"

我在我的 jenkins 上安装了 Nexus IQ Plugin v.2.19.0-01 并在 dsl 管道中调用 nexusPolicyEvaluation 如下

nexusPolicyEvaluation failBuildOnNetworkError: true, iqApplication: 'TestApp', iqStage: 'build', jobCredentialsId: ''

直到今天我突然收到以下错误之前一直工作正常:

org.apache.http.client.HttpResponseException: Resource not found, please check your request URL.
    at com.sonatype.nexus.api.m.a(SourceFile:60)
    at com.sonatype.nexus.api.m.a(SourceFile:65)
    at com.sonatype.nexus.api.n.a(SourceFile:67)
    at com.sonatype.nexus.api.cy.verifyOrCreateApplication(SourceFile:75)
Caused: com.sonatype.nexus.api.exception.IqClientException: Could not verify application public id from IQ Server
    at com.sonatype.nexus.api.cy.verifyOrCreateApplication(SourceFile:78)
    at com.sonatype.nexus.api.iq.IqClient$verifyOrCreateApplication.call(Unknown Source)
    at org.sonatype.nexus.ci.iq.IqPolicyEvaluatorUtil.evaluatePolicy(IqPolicyEvaluatorUtil.groovy:52)
    at org.sonatype.nexus.ci.iq.IqPolicyEvaluatorUtil$evaluatePolicy.call(Unknown Source)
    at org.sonatype.nexus.ci.iq.PolicyEvaluatorExecution.run(PolicyEvaluatorExecution.groovy:48)
    at org.sonatype.nexus.ci.iq.PolicyEvaluatorExecution.run(PolicyEvaluatorExecution.groovy)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.call(SynchronousNonBlockingStepExecution.java:49)
    at hudson.security.ACL.impersonate(ACL.java:260)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.run(SynchronousNonBlockingStepExecution.java:46)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

管道中的调用和 Jenkins 中的常规设置均未更改 - url 和凭据正确且 "Test Connection" 成功。

此外,我检查了 IQ 服务器,它是 运行,在发出网络请求时我实际上得到了有效响应

Invoke-WebRequest 'http://clm.mycompany.intra:8070/api/v2/applications?publicId=TestApp' -Headers $headers

有什么线索可以验证 url 吗?在谷歌搜索错误时,我也没有找到任何有用的信息。所以我有点迷失了可能导致问题的原因。

更新 1: IQ 服务器上的应用程序日志 clm-server.log 告诉我以下内容

2018-05-14 13:01:24,413+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@67c99f0c].  Returning null to indicate a session could not be found.
2018-05-14 13:01:24,413+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.web.servlet.OncePerRequestFilter - Filter 'reverseProxy' is not enabled for the current request.  Proceeding without invoking this filter.
2018-05-14 13:01:24,413+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo
2018-05-14 13:01:24,413+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [admin].  Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].
2018-05-14 13:01:24,678+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.authc.AbstractAuthenticator - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].  Returned account [admin]
2018-05-14 13:01:24,678+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:01:24,678+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:01:24,678+0200 DEBUG [qtp903987069-37 - GET /rest/policy/stages?context=ci] admin com.sonatype.insight.brain.policy.LicensedStagesResource - Received request to get licensed stages for context ci
2018-05-14 13:01:24,725+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@40c8a5a8].  Returning null to indicate a session could not be found.
2018-05-14 13:01:24,725+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.web.servlet.OncePerRequestFilter - Filter 'reverseProxy' is not enabled for the current request.  Proceeding without invoking this filter.
2018-05-14 13:01:24,725+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo
2018-05-14 13:01:24,725+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [admin].  Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].
2018-05-14 13:01:24,975+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.authc.AbstractAuthenticator - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].  Returned account [admin]
2018-05-14 13:01:24,975+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:01:24,975+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:01:24,975+0200 DEBUG [qtp903987069-33 - GET /rest/policy/stages?context=ci] admin com.sonatype.insight.brain.policy.LicensedStagesResource - Received request to get licensed stages for context ci
2018-05-14 13:15:03,906+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@3b2a0d51].  Returning null to indicate a session could not be found.
2018-05-14 13:15:03,906+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.web.servlet.OncePerRequestFilter - Filter 'reverseProxy' is not enabled for the current request.  Proceeding without invoking this filter.
2018-05-14 13:15:03,906+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo
2018-05-14 13:15:03,906+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [admin].  Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].
2018-05-14 13:15:04,187+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.authc.AbstractAuthenticator - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].  Returned account [admin]
2018-05-14 13:15:04,187+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:15:04,187+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:15:04,187+0200 DEBUG [qtp903987069-141 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION] admin com.sonatype.insight.jaxrs.error.ErrorResponseGenerator - null for uri: http://clm.mycompany.intra:8070/rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION
2018-05-14 13:15:05,016+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@64719843].  Returning null to indicate a session could not be found.
2018-05-14 13:15:05,016+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.web.servlet.OncePerRequestFilter - Filter 'reverseProxy' is not enabled for the current request.  Proceeding without invoking this filter.
2018-05-14 13:15:05,016+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo
2018-05-14 13:15:05,016+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [admin].  Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].
2018-05-14 13:15:05,329+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.authc.AbstractAuthenticator - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (10.120.16.12)].  Returned account [admin]
2018-05-14 13:15:05,329+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:15:05,329+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION]  org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map.  Falling back to SecurityUtils.getSecurityManager() lookup.
2018-05-14 13:15:05,329+0200 DEBUG [qtp903987069-37 - POST /rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION] admin com.sonatype.insight.jaxrs.error.ErrorResponseGenerator - null for uri: http://clm.mycompany.intra:8070/rest/integration/applications/verifyOrCreate/TestApp?goal=EVALUATE_APPLICATION
2

我们仍然使用旧版本的 Nexus IQ 服务器,latest version of the Platform Plugin (3.0.20180425-130011.728733c) 似乎添加了一项需要 IQ Server 1.47+ 的功能。因此降级到以前的插件版本 (3.0.20180214-134325.e135900) 可以解决问题。

感谢 SonaType 在这方面的快速帮助。