upstreamPipeline (plugins/pipeline-maven-plugin/dependency-graph/my-jar, visibleByDownstreamBuildAuth: true), downstreamPipeline (plugins/pipeline-maven-plugin/dependency-graph/my-war-multibranch/master, visibleByUpstreamBuildAuth: true), upstreamBuildAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@1f: Username: SYSTEM; Password: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities
upstreamPipeline (<upstream build>, visibleByDownstreamBuildAuth: false), downstreamPipeline (<downstream pipeline>, visibleByUpstreamBuildAuth: true), upstreamBuildAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@1f: Username: SYSTEM; Password: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities
Skip triggering of <downstream pipeline> by <upstream pipeline> #<build>: downstreamVisibleByUpstreamBuildAuth: true, upstreamVisibleByDownstreamBuildAuth: false
upstreamPipeline (<upstream build>, visibleByDownstreamBuildAuth: false), downstreamPipeline (<downstream pipeline>, visibleByUpstreamBuildAuth: true), upstreamBuildAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@72da9556: Username: <user-with-admin-priv>; Password: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: authenticated
Skip triggering of <downstream pipeline> by <upstream pipeline> #<build>: downstreamVisibleByUpstreamBuildAuth: true, upstreamVisibleByDownstreamBuildAuth: false
public boolean isUpstreamBuildVisibleByDownstreamBuildAuth(@Nonnull WorkflowJob upstreamPipeline, @Nonnull Queue.Task downstreamPipeline) {
Authentication auth = Tasks.getAuthenticationOf(downstreamPipeline);
Authentication downstreamPipelineAuth;
if (auth.equals(ACL.SYSTEM) && !QueueItemAuthenticatorConfiguration.get().getAuthenticators().isEmpty()) {
downstreamPipelineAuth = Jenkins.ANONYMOUS; // cf. BuildTrigger
} else {
downstreamPipelineAuth = auth;
}
try (ACLContext ignored = ACL.as(downstreamPipelineAuth)) {
WorkflowJob upstreamPipelineObtainedAsImpersonated = getItemByFullName(upstreamPipeline.getFullName(), WorkflowJob.class);
boolean result = upstreamPipelineObtainedAsImpersonated != null;
LOGGER.log(Level.FINE, "isUpstreamBuildVisibleByDownstreamBuildAuth({0}, {1}): taskAuth: {2}, downstreamPipelineAuth: {3}, upstreamPipelineObtainedAsImpersonated:{4}, result: {5}",
new Object[]{upstreamPipeline, downstreamPipeline, auth, downstreamPipelineAuth, upstreamPipelineObtainedAsImpersonated, result});
return result;
}
}
isUpstreamBuildVisibleByDownstreamBuildAuth(org.jenkinsci.plugins.workflow.job.WorkflowJob@3e3adefa[<upstream-job>], org.jenkinsci.plugins.workflow.job.WorkflowJob@7b2c0800[<downstream-job>]): taskAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@1f: Username: SYSTEM; Password: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities, downstreamPipelineAuth: org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@ffffffc4: Username: anonymous; Password: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: anonymous, upstreamPipelineObtainedAsImpersonated:null, result: false
upstreamPipeline (<upstream>, visibleByDownstreamBuildAuth: true), downstreamPipeline (<downstream>, visibleByUpstreamBuildAuth: true), upstreamBuildAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@1f: Username: SYSTEM; Password: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities
isUpstreamBuildVisibleByDownstreamBuildAuth(upstreamPipeline: <upstream>, downstreamPipeline: <>): downstreamPipelineAuth: org.acegisecurity.providers.UsernamePasswordAuthenticationToken@1f: Username: SYSTEM; Password: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities, upstreamPipelineObtainedAsImpersonated:org.jenkinsci.plugins.workflow.job.WorkflowJob@151406db[upstream job], result: true