From 5a9aedc77a0a0dcd651f678efe79aeed6f7f67a0 Mon Sep 17 00:00:00 2001 From: Klaas Neirinck Date: Tue, 13 Feb 2024 20:31:19 +0100 Subject: [PATCH] Use the Run context to retrieve credentials if possible --- .../hudson/AbstractBuildInfoDeployer.java | 2 +- .../org/jfrog/hudson/ArtifactoryBuilder.java | 6 +++--- .../hudson/ArtifactoryRedeployPublisher.java | 2 +- .../org/jfrog/hudson/ArtifactoryServer.java | 21 ++++++++++--------- .../ArtifactoryGenericConfigurator.java | 4 ++-- .../generic/GenericArtifactsDeployer.java | 4 ++-- .../gradle/ArtifactoryGradleConfigurator.java | 2 +- .../jfpipelines/JFrogPipelinesServer.java | 3 ++- .../maven3/ArtifactoryMaven3Configurator.java | 2 +- .../extractor/MavenExtractorEnvironment.java | 2 +- .../common/executors/BuildAppendExecutor.java | 2 +- .../executors/CollectIssuesExecutor.java | 2 +- .../executors/DistributionExecutor.java | 2 +- .../common/executors/EditPropsExecutor.java | 2 +- .../common/executors/EnvExtractor.java | 2 +- .../executors/GenericDownloadExecutor.java | 2 +- .../executors/GenericUploadExecutor.java | 2 +- .../GetJFrogPlatformInstancesExecutor.java | 4 ++-- .../common/executors/PromotionExecutor.java | 2 +- .../executors/PublishBuildInfoExecutor.java | 2 +- .../ReleaseBundleCreateExecutor.java | 2 +- .../ReleaseBundleDeleteExecutor.java | 2 +- .../ReleaseBundleDistributeExecutor.java | 2 +- .../executors/ReleaseBundleSignExecutor.java | 2 +- .../ReleaseBundleUpdateExecutor.java | 2 +- .../common/executors/XrayExecutor.java | 2 +- .../common/types/ArtifactoryServer.java | 5 +++-- .../common/types/DistributionServer.java | 9 ++++---- .../common/types/deployers/Deployer.java | 2 +- .../steps/conan/ConanRemoteStep.java | 4 ++-- .../scripted/steps/conan/AddUserStep.java | 4 ++-- .../promotion/UnifiedPromoteBuildAction.java | 4 ++-- .../org/jfrog/hudson/util/ExtractorUtils.java | 4 ++-- 33 files changed, 59 insertions(+), 55 deletions(-) diff --git a/src/main/java/org/jfrog/hudson/AbstractBuildInfoDeployer.java b/src/main/java/org/jfrog/hudson/AbstractBuildInfoDeployer.java index cf986783b..6e9c5b668 100644 --- a/src/main/java/org/jfrog/hudson/AbstractBuildInfoDeployer.java +++ b/src/main/java/org/jfrog/hudson/AbstractBuildInfoDeployer.java @@ -72,7 +72,7 @@ protected BuildInfo createBuildInfo(String buildAgentName, String buildAgentVers long duration = System.currentTimeMillis() - startedTimestamp.getTimeInMillis(); builder.durationMillis(duration); - String artifactoryPrincipal = configurator.getArtifactoryServer().getResolvingCredentialsConfig().provideCredentials(build.getParent()).getUsername(); + String artifactoryPrincipal = configurator.getArtifactoryServer().getResolvingCredentialsConfig().provideCredentials(build).getUsername(); if (StringUtils.isBlank(artifactoryPrincipal)) { artifactoryPrincipal = ""; } diff --git a/src/main/java/org/jfrog/hudson/ArtifactoryBuilder.java b/src/main/java/org/jfrog/hudson/ArtifactoryBuilder.java index 78c1714a6..006df2ce7 100644 --- a/src/main/java/org/jfrog/hudson/ArtifactoryBuilder.java +++ b/src/main/java/org/jfrog/hudson/ArtifactoryBuilder.java @@ -158,12 +158,12 @@ public FormValidation doTestConnection( String username = StringUtils.EMPTY; String password = StringUtils.EMPTY; - StringCredentials accessTokenCredentials = PluginsUtils.accessTokenCredentialsLookup(deployerCredentialsId, null); + StringCredentials accessTokenCredentials = PluginsUtils.accessTokenCredentialsLookup(deployerCredentialsId, (Item) null); if (accessTokenCredentials != null) { accessToken = accessTokenCredentials.getSecret().getPlainText(); } else { if (useCredentialsPlugin) { - Credentials credentials = PluginsUtils.usernamePasswordCredentialsLookup(deployerCredentialsId, null); + Credentials credentials = PluginsUtils.usernamePasswordCredentialsLookup(deployerCredentialsId, (Item) null); username = credentials.getUsername(); password = credentials.getPassword(); } else { @@ -236,7 +236,7 @@ public FormValidation doTestJFrogPipelinesConnection( return FormValidation.error("Connection Retries can not be less then 0"); } - StringCredentials accessTokenCredentials = PluginsUtils.accessTokenCredentialsLookup(credentialsId, null); + StringCredentials accessTokenCredentials = PluginsUtils.accessTokenCredentialsLookup(credentialsId, (Item) null); if (accessTokenCredentials == null) { return FormValidation.error("Please set credentials with access token as 'Secret text'"); } diff --git a/src/main/java/org/jfrog/hudson/ArtifactoryRedeployPublisher.java b/src/main/java/org/jfrog/hudson/ArtifactoryRedeployPublisher.java index e620ae571..7e3ffed90 100644 --- a/src/main/java/org/jfrog/hudson/ArtifactoryRedeployPublisher.java +++ b/src/main/java/org/jfrog/hudson/ArtifactoryRedeployPublisher.java @@ -349,7 +349,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListener lis ArtifactoryServer server = getArtifactoryServer(); CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(this, server); - try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(preferredDeployer.provideCredentials(((MavenModuleSetBuild) build).getProject()), ProxyUtils.createProxyConfiguration())) { + try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(preferredDeployer.provideCredentials(build), ProxyUtils.createProxyConfiguration())) { server.setLog(listener, artifactoryManager); if (deployArtifacts) { new ArtifactsDeployer(this, artifactoryManager, mavenBuild, listener).deploy(); diff --git a/src/main/java/org/jfrog/hudson/ArtifactoryServer.java b/src/main/java/org/jfrog/hudson/ArtifactoryServer.java index 44927c472..8b97024d9 100644 --- a/src/main/java/org/jfrog/hudson/ArtifactoryServer.java +++ b/src/main/java/org/jfrog/hudson/ArtifactoryServer.java @@ -17,6 +17,7 @@ package org.jfrog.hudson; import hudson.model.Item; +import hudson.model.Run; import hudson.model.TaskListener; import hudson.util.XStream2; import org.apache.commons.lang3.StringUtils; @@ -193,9 +194,9 @@ public Map getStagingStrategy(PluginSettings selectedStagingPlugin, String build } } - public List getVirtualRepositoryKeys(ResolverOverrider resolverOverrider, Item item) { + public List getVirtualRepositoryKeys(ResolverOverrider resolverOverrider, Run run) { CredentialsConfig preferredResolver = CredentialManager.getPreferredResolver(resolverOverrider, this); - try (ArtifactoryManager artifactoryManager = createArtifactoryManager(preferredResolver.provideCredentials(item), + try (ArtifactoryManager artifactoryManager = createArtifactoryManager(preferredResolver.provideCredentials(run), createProxyConfiguration())) { resolutionRepositories = RepositoriesUtils.generateResolutionRepos(artifactoryManager); } catch (IOException e) { @@ -231,14 +232,16 @@ public boolean isArtifactoryPro(DeployerOverrider deployerOverrider, Item item) public List getStagingUserPluginInfo(DeployerOverrider deployerOverrider, Item item) { List infosToReturn = new ArrayList<>(); infosToReturn.add(UserPluginInfo.NO_PLUGIN); - gatherUserPluginInfo(infosToReturn, "staging", deployerOverrider, item); + gatherUserPluginInfo(infosToReturn, "staging", deployerOverrider, + CredentialManager.getPreferredResolver((ResolverOverrider) deployerOverrider, this).provideCredentials(item)); return infosToReturn; } - public List getPromotionsUserPluginInfo(DeployerOverrider deployerOverrider, Item item) { + public List getPromotionsUserPluginInfo(DeployerOverrider deployerOverrider, Run run) { List infosToReturn = new ArrayList<>(); infosToReturn.add(UserPluginInfo.NO_PLUGIN); - gatherUserPluginInfo(infosToReturn, "promotions", deployerOverrider, item); + gatherUserPluginInfo(infosToReturn, "promotions", deployerOverrider, + CredentialManager.getPreferredResolver((ResolverOverrider) deployerOverrider, this).provideCredentials(run)); return infosToReturn; } @@ -307,10 +310,8 @@ public CredentialsConfig getResolvingCredentialsConfig() { return CredentialsConfig.EMPTY_CREDENTIALS_CONFIG; } - private void gatherUserPluginInfo(List infosToReturn, String pluginKey, DeployerOverrider deployerOverrider, Item item) { - CredentialsConfig credentialsConfig = CredentialManager.getPreferredDeployer(deployerOverrider, this); - try (ArtifactoryManager artifactoryManager = createArtifactoryManager(credentialsConfig.provideCredentials(item), - createProxyConfiguration())) { + private void gatherUserPluginInfo(List infosToReturn, String pluginKey, DeployerOverrider deployerOverrider, Credentials credentials) { + try (ArtifactoryManager artifactoryManager = createArtifactoryManager(credentials, createProxyConfiguration())) { Map> userPluginInfo = artifactoryManager.getUserPluginInfo(); if (userPluginInfo != null && userPluginInfo.containsKey(pluginKey)) { List stagingUserPluginInfo = userPluginInfo.get(pluginKey); @@ -366,7 +367,7 @@ public void reportUsage(String stepName, WorkflowRun build, Log logger) { if (config == null) { config = this.getResolverCredentialsConfig(); } - Credentials credentials = config.provideCredentials(build.getParent()); + Credentials credentials = config.provideCredentials(build); String[] featureIdArray = new String[]{stepName}; UsageReporter usageReporter = new UsageReporter("jenkins-artifactory-plugin/" + ActionableHelper.getArtifactoryPluginVersion(), featureIdArray); usageReporter.reportUsage(this.getArtifactoryUrl(), credentials.getUsername(), credentials.getPassword(), credentials.getAccessToken(), Utils.getProxyConfiguration(this), null, logger); diff --git a/src/main/java/org/jfrog/hudson/generic/ArtifactoryGenericConfigurator.java b/src/main/java/org/jfrog/hudson/generic/ArtifactoryGenericConfigurator.java index 4536ee5c8..50c4b7c29 100644 --- a/src/main/java/org/jfrog/hudson/generic/ArtifactoryGenericConfigurator.java +++ b/src/main/java/org/jfrog/hudson/generic/ArtifactoryGenericConfigurator.java @@ -375,7 +375,7 @@ public Environment setUp(final AbstractBuild build, Launcher launcher, BuildList ArtifactoryServer resolverServer = getArtifactoryResolverServer(); CredentialsConfig preferredResolver = CredentialManager.getPreferredResolver(ArtifactoryGenericConfigurator.this, resolverServer); - Credentials resolverCredentials = preferredResolver.provideCredentials(build.getProject()); + Credentials resolverCredentials = preferredResolver.provideCredentials(build); ProxyConfiguration proxyConfiguration = null; if (Jenkins.get().proxy != null && !resolverServer.isBypassProxy()) { proxyConfiguration = createProxyConfiguration(); @@ -409,7 +409,7 @@ public boolean tearDown(AbstractBuild build, BuildListener listener) { ArtifactoryServer server = getArtifactoryServer(); CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(ArtifactoryGenericConfigurator.this, server); - try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(preferredDeployer.provideCredentials(build.getProject()), createProxyConfiguration())) { + try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(preferredDeployer.provideCredentials(build), createProxyConfiguration())) { server.setLog(listener, artifactoryManager); boolean isFiltered = false; if (isMultiConfProject(build)) { diff --git a/src/main/java/org/jfrog/hudson/generic/GenericArtifactsDeployer.java b/src/main/java/org/jfrog/hudson/generic/GenericArtifactsDeployer.java index a6ed98182..24b9cd3cc 100644 --- a/src/main/java/org/jfrog/hudson/generic/GenericArtifactsDeployer.java +++ b/src/main/java/org/jfrog/hudson/generic/GenericArtifactsDeployer.java @@ -85,7 +85,7 @@ public void deploy() if (configurator.isUseSpecs()) { String spec = SpecUtils.getSpecStringFromSpecConf(configurator.getUploadSpec(), env, workingDir, listener.getLogger()); artifactsToDeploy = workingDir.act(new FilesDeployerCallable(listener, spec, artifactoryServer, - credentialsConfig.provideCredentials(build.getParent()), propertiesToAdd, + credentialsConfig.provideCredentials(build), propertiesToAdd, createProxyConfiguration(), artifactoryServer.getDeploymentThreads())); } else { String deployPattern = Util.replaceMacro(configurator.getDeployPattern(), env); @@ -97,7 +97,7 @@ public void deploy() } String repositoryKey = Util.replaceMacro(configurator.getRepositoryKey(), env); artifactsToDeploy = workingDir.act(new FilesDeployerCallable(listener, pairs, artifactoryServer, - credentialsConfig.provideCredentials(build.getParent()), repositoryKey, propertiesToAdd, + credentialsConfig.provideCredentials(build), repositoryKey, propertiesToAdd, createProxyConfiguration())); } } diff --git a/src/main/java/org/jfrog/hudson/gradle/ArtifactoryGradleConfigurator.java b/src/main/java/org/jfrog/hudson/gradle/ArtifactoryGradleConfigurator.java index 8a99ed51c..ed8ef7cd8 100644 --- a/src/main/java/org/jfrog/hudson/gradle/ArtifactoryGradleConfigurator.java +++ b/src/main/java/org/jfrog/hudson/gradle/ArtifactoryGradleConfigurator.java @@ -487,7 +487,7 @@ public void buildEnvVars(Map env) { CredentialsConfig resolverCredentials = CredentialManager.getPreferredResolver( ArtifactoryGradleConfigurator.this, getArtifactoryServer()); resolverContext = new ResolverContext(getArtifactoryResolverServer(), resolverServerDetails, - resolverCredentials.provideCredentials(build.getProject()), ArtifactoryGradleConfigurator.this); + resolverCredentials.provideCredentials(build), ArtifactoryGradleConfigurator.this); } try { diff --git a/src/main/java/org/jfrog/hudson/jfpipelines/JFrogPipelinesServer.java b/src/main/java/org/jfrog/hudson/jfpipelines/JFrogPipelinesServer.java index 0bb7a74ba..4c0622597 100644 --- a/src/main/java/org/jfrog/hudson/jfpipelines/JFrogPipelinesServer.java +++ b/src/main/java/org/jfrog/hudson/jfpipelines/JFrogPipelinesServer.java @@ -1,5 +1,6 @@ package org.jfrog.hudson.jfpipelines; +import hudson.model.Item; import hudson.model.Queue; import hudson.model.Result; import hudson.model.Run; @@ -91,7 +92,7 @@ public int getConnectionRetries() { } private JFrogPipelinesHttpClient createHttpClient(Log logger) { - JFrogPipelinesHttpClient client = new JFrogPipelinesHttpClient(integrationUrl, credentialsConfig.provideCredentials(null).getAccessToken(), logger); + JFrogPipelinesHttpClient client = new JFrogPipelinesHttpClient(integrationUrl, credentialsConfig.provideCredentials((Item) null).getAccessToken(), logger); client.setConnectionRetries(getConnectionRetries()); client.setConnectionTimeout(getTimeout()); if (!isBypassProxy()) { diff --git a/src/main/java/org/jfrog/hudson/maven3/ArtifactoryMaven3Configurator.java b/src/main/java/org/jfrog/hudson/maven3/ArtifactoryMaven3Configurator.java index 236199e99..ccab4f59c 100644 --- a/src/main/java/org/jfrog/hudson/maven3/ArtifactoryMaven3Configurator.java +++ b/src/main/java/org/jfrog/hudson/maven3/ArtifactoryMaven3Configurator.java @@ -391,7 +391,7 @@ public Environment setUp(final AbstractBuild build, final Launcher launcher, fin if (isEnableResolveArtifacts()) { CredentialsConfig credentialResolver = CredentialManager.getPreferredResolver( ArtifactoryMaven3Configurator.this, getArtifactoryServer()); - resolver = new ResolverContext(getArtifactoryServer(), getResolverDetails(), credentialResolver.provideCredentials(build.getProject()), + resolver = new ResolverContext(getArtifactoryServer(), getResolverDetails(), credentialResolver.provideCredentials(build), ArtifactoryMaven3Configurator.this); } final ResolverContext resolverContext = resolver; diff --git a/src/main/java/org/jfrog/hudson/maven3/extractor/MavenExtractorEnvironment.java b/src/main/java/org/jfrog/hudson/maven3/extractor/MavenExtractorEnvironment.java index c7fd89138..062038392 100644 --- a/src/main/java/org/jfrog/hudson/maven3/extractor/MavenExtractorEnvironment.java +++ b/src/main/java/org/jfrog/hudson/maven3/extractor/MavenExtractorEnvironment.java @@ -134,7 +134,7 @@ public void buildEnvVars(Map env) { CredentialsConfig resolverCredentials = CredentialManager.getPreferredResolver(resolver, resolver.getArtifactoryServer()); resolverContext = new ResolverContext(resolver.getArtifactoryServer(), resolver.getResolverDetails(), - resolverCredentials.provideCredentials(build.getProject()), resolver); + resolverCredentials.provideCredentials(build), resolver); } ArtifactoryClientConfiguration configuration = ExtractorUtils.addBuilderInfoArguments( diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/BuildAppendExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/BuildAppendExecutor.java index 1f105a96c..20b9b580c 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/BuildAppendExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/BuildAppendExecutor.java @@ -58,7 +58,7 @@ public void execute() throws Exception { // Prepare Artifactory server org.jfrog.hudson.ArtifactoryServer server = Utils.prepareArtifactoryServer(null, pipelineServer); CredentialsConfig credentialsConfig = server.getResolverCredentialsConfig(); - Credentials credentials = credentialsConfig.provideCredentials(build.getParent()); + Credentials credentials = credentialsConfig.provideCredentials(build); // Calculate build timestamp long timestamp = getBuildTimestamp(server, credentials); diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/CollectIssuesExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/CollectIssuesExecutor.java index a079e36b4..81c4b6474 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/CollectIssuesExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/CollectIssuesExecutor.java @@ -57,7 +57,7 @@ public void execute() throws IOException, InterruptedException { private ArtifactoryManagerBuilder getArtifactoryManagerBuilder(ArtifactoryServer pipelineServer, Run build, TaskListener listener) { org.jfrog.hudson.ArtifactoryServer server = Utils.prepareArtifactoryServer(null, pipelineServer); CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(new ArtifactoryConfigurator(server), server); - return server.createArtifactoryManagerBuilder(preferredDeployer.provideCredentials(build.getParent()), + return server.createArtifactoryManagerBuilder(preferredDeployer.provideCredentials(build), ProxyUtils.createProxyConfiguration(), new JenkinsBuildInfoLog(listener)); } diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/DistributionExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/DistributionExecutor.java index 25294354b..d3524cd53 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/DistributionExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/DistributionExecutor.java @@ -41,7 +41,7 @@ public DistributionExecutor(ArtifactoryServer server, Run build, TaskListener li public void execute() throws IOException { ArtifactoryConfigurator configurator = new ArtifactoryConfigurator(server); CredentialsConfig deployerConfig = CredentialManager.getPreferredDeployer(configurator, server); - ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build.getParent()), + ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build), ProxyUtils.createProxyConfiguration()); DistributionBuilder distributionBuilder = new DistributionBuilder() diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/EditPropsExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/EditPropsExecutor.java index 0f1c94627..817d3c34d 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/EditPropsExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/EditPropsExecutor.java @@ -38,7 +38,7 @@ public EditPropsExecutor(ArtifactoryServer server, TaskListener listener, Run bu public void execute() throws IOException, InterruptedException { CredentialsConfig preferredDeployer = server.getDeployerCredentialsConfig(); Boolean success = ws.act(new EditPropertiesCallable(new JenkinsBuildInfoLog(listener), - preferredDeployer.provideCredentials(build.getParent()), + preferredDeployer.provideCredentials(build), server.getArtifactoryUrl(), spec, Utils.getProxyConfiguration(server), editType, props)); if (failNoOp && !success) { diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/EnvExtractor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/EnvExtractor.java index f2cd89acb..3112ac4a3 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/EnvExtractor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/EnvExtractor.java @@ -85,7 +85,7 @@ public ArtifactoryClientConfiguration createArtifactoryClientConfiguration() thr CredentialsConfig resolverCredentials = CredentialManager.getPreferredResolver(resolver, resolver.getArtifactoryServer()); resolverContext = new ResolverContext(resolver.getArtifactoryServer(), resolver.getResolverDetails(), - resolverCredentials.provideCredentials(build.getParent()), resolver); + resolverCredentials.provideCredentials(build), resolver); } return ExtractorUtils.getArtifactoryClientConfiguration( diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericDownloadExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericDownloadExecutor.java index ac3aeaada..fa44c2915 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericDownloadExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericDownloadExecutor.java @@ -47,7 +47,7 @@ public BuildInfo getBuildInfo() { public void execute() throws IOException, InterruptedException { CredentialsConfig preferredResolver = server.getDeployerCredentialsConfig(); - Credentials resolverCredentials = preferredResolver.provideCredentials(build.getParent()); + Credentials resolverCredentials = preferredResolver.provideCredentials(build); List resolvedDependencies = ws.act(new FilesResolverCallable(new JenkinsBuildInfoLog(listener), resolverCredentials, server.getArtifactoryUrl(), spec, Utils.getProxyConfiguration(server))); diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericUploadExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericUploadExecutor.java index a1fa52049..0a002a543 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericUploadExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GenericUploadExecutor.java @@ -48,7 +48,7 @@ public BuildInfo getBuildInfo() { } public void execute() throws IOException, InterruptedException { - Credentials credentials = server.getDeployerCredentialsConfig().provideCredentials(build.getParent()); + Credentials credentials = server.getDeployerCredentialsConfig().provideCredentials(build); ProxyConfiguration proxyConfiguration = Utils.getProxyConfiguration(server); buildInfo.appendVcs(Utils.extractVcs(ws, new JenkinsBuildInfoLog(listener))); diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GetJFrogPlatformInstancesExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GetJFrogPlatformInstancesExecutor.java index b742e900c..d3497cd83 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/GetJFrogPlatformInstancesExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/GetJFrogPlatformInstancesExecutor.java @@ -47,8 +47,8 @@ public void execute() { throw new ServerNotFoundException("Duplicate configured JFrog instance ID: " + jfrogInstancesID); } JFrogPlatformInstance jfrogPlatformInstance = jfrogInstancesFound.get(0); - DistributionServer distributionServer = new DistributionServer(jfrogPlatformInstance, build.getParent()); - ArtifactoryServer artifactoryServer = new ArtifactoryServer(jfrogPlatformInstance.getArtifactory(), build.getParent()); + DistributionServer distributionServer = new DistributionServer(jfrogPlatformInstance, build); + ArtifactoryServer artifactoryServer = new ArtifactoryServer(jfrogPlatformInstance.getArtifactory(), build); this.jfrogPlatformInstance = new org.jfrog.hudson.pipeline.common.types.JFrogPlatformInstance(artifactoryServer, distributionServer, jfrogPlatformInstance.getUrl(), jfrogPlatformInstance.getId()); artifactoryServer.setPlatformUrl(this.jfrogPlatformInstance.getUrl()); } diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/PromotionExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/PromotionExecutor.java index 3942de8d0..5d2b6f90a 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/PromotionExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/PromotionExecutor.java @@ -39,7 +39,7 @@ public PromotionExecutor(ArtifactoryServer server, Run build, TaskListener public void execute() throws IOException { ArtifactoryConfigurator configurator = new ArtifactoryConfigurator(server); CredentialsConfig deployerConfig = CredentialManager.getPreferredDeployer(configurator, server); - ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build.getParent()), + ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build), ProxyUtils.createProxyConfiguration()); PromotionBuilder promotionBuilder = new PromotionBuilder() diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/PublishBuildInfoExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/PublishBuildInfoExecutor.java index 0ed40473e..c38b13c87 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/PublishBuildInfoExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/PublishBuildInfoExecutor.java @@ -41,7 +41,7 @@ public void execute() throws Exception { private ArtifactoryManager createArtifactoryManager(org.jfrog.hudson.ArtifactoryServer server, Run build, TaskListener listener) { CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(new ArtifactoryConfigurator(server), server); - return server.createArtifactoryManager(preferredDeployer.provideCredentials(build.getParent()), + return server.createArtifactoryManager(preferredDeployer.provideCredentials(build), ProxyUtils.createProxyConfiguration(), new JenkinsBuildInfoLog(listener)); } } diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleCreateExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleCreateExecutor.java index 91e193c4b..949ef7c5e 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleCreateExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleCreateExecutor.java @@ -26,7 +26,7 @@ public class ReleaseBundleCreateExecutor implements Executor { public ReleaseBundleCreateExecutor(DistributionServer server, String name, String version, String spec, String storingRepo, boolean signImmediately, boolean dryRun, String gpgPassphrase, String releaseNotesPath, String releaseNotesSyntax, String description, TaskListener listener, Run build, FilePath ws, EnvVars env) throws IOException { - this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build.getParent()); + this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build); this.request = createRequest(name, version, Util.replaceMacro(spec, env), description, storingRepo, signImmediately, dryRun, releaseNotesPath, releaseNotesSyntax); this.ws = ws; this.gpgPassphrase = gpgPassphrase; diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDeleteExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDeleteExecutor.java index 6eb4b0568..56bc1185e 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDeleteExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDeleteExecutor.java @@ -32,7 +32,7 @@ public class ReleaseBundleDeleteExecutor implements Executor { public ReleaseBundleDeleteExecutor(DistributionServer server, String name, String version, boolean dryRun, boolean sync, boolean deleteFromDist, String distRules, List countryCodes, String siteName, String cityName, TaskListener listener, Run build, FilePath ws) throws IOException { - this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build.getParent()); + this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build); this.request = createRequest(distRules, countryCodes, siteName, cityName, dryRun, deleteFromDist); this.ws = ws; this.name = name; diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDistributeExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDistributeExecutor.java index 156ae4ac6..f5ebe0157 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDistributeExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleDistributeExecutor.java @@ -32,7 +32,7 @@ public class ReleaseBundleDistributeExecutor implements Executor { public ReleaseBundleDistributeExecutor(DistributionServer server, String name, String version, boolean dryRun, boolean sync, String distRules, List countryCodes, String siteName, String cityName, TaskListener listener, Run build, FilePath ws) throws IOException { - this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build.getParent()); + this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build); this.request = createRequest(distRules, countryCodes, siteName, cityName, dryRun); this.ws = ws; this.name = name; diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleSignExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleSignExecutor.java index 7f16610c3..ba5421a6c 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleSignExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleSignExecutor.java @@ -23,7 +23,7 @@ public class ReleaseBundleSignExecutor implements Executor { public ReleaseBundleSignExecutor(DistributionServer server, String name, String version, String gpgPassphrase, String storingRepo, TaskListener listener, Run build, FilePath ws) { - this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build.getParent()); + this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build); this.version = version; this.name = name; this.gpgPassphrase = gpgPassphrase; diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleUpdateExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleUpdateExecutor.java index f1b1ac362..36bb10732 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleUpdateExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/ReleaseBundleUpdateExecutor.java @@ -29,7 +29,7 @@ public class ReleaseBundleUpdateExecutor implements Executor { public ReleaseBundleUpdateExecutor(DistributionServer server, String name, String version, String spec, String storingRepo, boolean signImmediately, boolean dryRun, String gpgPassphrase, String releaseNotesPath, String releaseNotesSyntax, String description, TaskListener listener, Run build, FilePath ws, EnvVars env) throws IOException { - this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build.getParent()); + this.distributionManagerBuilder = server.createDistributionManagerBuilder(new JenkinsBuildInfoLog(listener), build); this.request = createRequest(Util.replaceMacro(spec, env), description, storingRepo, signImmediately, dryRun, releaseNotesPath, releaseNotesSyntax); this.ws = ws; this.gpgPassphrase = gpgPassphrase; diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/executors/XrayExecutor.java b/src/main/java/org/jfrog/hudson/pipeline/common/executors/XrayExecutor.java index 0dd617c3d..16a4aec9e 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/executors/XrayExecutor.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/executors/XrayExecutor.java @@ -39,7 +39,7 @@ public XrayExecutor(XrayScanConfig xrayScanConfig, TaskListener listener, Artifa @Override public void execute() throws Exception { Log log = new JenkinsBuildInfoLog(listener); - Credentials credentials = server.createCredentialsConfig().provideCredentials(build.getParent()); + Credentials credentials = server.createCredentialsConfig().provideCredentials(build); ArtifactoryManager artifactoryManager = new ArtifactoryManager(server.getUrl(), credentials.getUsername(), credentials.getPassword(), credentials.getAccessToken(), log); ProxyConfiguration proxyConfiguration = Utils.getProxyConfiguration(Utils.prepareArtifactoryServer(null, server)); diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/types/ArtifactoryServer.java b/src/main/java/org/jfrog/hudson/pipeline/common/types/ArtifactoryServer.java index c252c0bc9..bc726a4a4 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/types/ArtifactoryServer.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/types/ArtifactoryServer.java @@ -1,6 +1,7 @@ package org.jfrog.hudson.pipeline.common.types; import hudson.model.Item; +import hudson.model.Run; import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted; import org.jenkinsci.plugins.workflow.cps.CpsScript; import org.jfrog.hudson.CredentialsConfig; @@ -72,14 +73,14 @@ public ArtifactoryServer(String url, String credentialsId) { this.usesCredentialsId = true; } - public ArtifactoryServer(org.jfrog.hudson.ArtifactoryServer jenkinsArtifactoryServer, Item parent) { + public ArtifactoryServer(org.jfrog.hudson.ArtifactoryServer jenkinsArtifactoryServer, Run run) { serverName = jenkinsArtifactoryServer.getServerId(); url = jenkinsArtifactoryServer.getArtifactoryUrl(); this.deploymentThreads = jenkinsArtifactoryServer.getDeploymentThreads(); if (PluginsUtils.isCredentialsPluginEnabled()) { credentialsId = jenkinsArtifactoryServer.getResolvingCredentialsConfig().getCredentialsId(); } else { - Credentials serverCredentials = jenkinsArtifactoryServer.getResolvingCredentialsConfig().provideCredentials(parent); + Credentials serverCredentials = jenkinsArtifactoryServer.getResolvingCredentialsConfig().provideCredentials(run); username = serverCredentials.getUsername(); password = serverCredentials.getPassword(); } diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/types/DistributionServer.java b/src/main/java/org/jfrog/hudson/pipeline/common/types/DistributionServer.java index 97d29a179..e77bde9b9 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/types/DistributionServer.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/types/DistributionServer.java @@ -1,6 +1,7 @@ package org.jfrog.hudson.pipeline.common.types; import hudson.model.Item; +import hudson.model.Run; import org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.Whitelisted; import org.jenkinsci.plugins.workflow.cps.CpsScript; import org.jfrog.build.api.util.Log; @@ -78,13 +79,13 @@ public DistributionServer(String url, String credentialsId) { this.usesCredentialsId = true; } - public DistributionServer(org.jfrog.hudson.JFrogPlatformInstance jfrogPlatformInstance, Item parent) { + public DistributionServer(org.jfrog.hudson.JFrogPlatformInstance jfrogPlatformInstance, Run run) { id = jfrogPlatformInstance.getId(); url = jfrogPlatformInstance.getDistributionUrl(); if (PluginsUtils.isCredentialsPluginEnabled()) { credentialsId = jfrogPlatformInstance.getDeployerCredentialsConfig().getCredentialsId(); } else { - Credentials serverCredentials = jfrogPlatformInstance.getDeployerCredentialsConfig().provideCredentials(parent); + Credentials serverCredentials = jfrogPlatformInstance.getDeployerCredentialsConfig().provideCredentials(run); username = serverCredentials.getUsername(); password = serverCredentials.getPassword(); } @@ -141,8 +142,8 @@ public CredentialsConfig createCredentialsConfig() { return credentialsConfig; } - public DistributionManagerBuilder createDistributionManagerBuilder(Log log, Item parent) { - Credentials credentials = createCredentialsConfig().provideCredentials(parent); + public DistributionManagerBuilder createDistributionManagerBuilder(Log log, Run run) { + Credentials credentials = createCredentialsConfig().provideCredentials(run); DistributionManagerBuilder builder = new DistributionManagerBuilder() .setServerUrl(url) .setUsername(credentials.getUsername()) diff --git a/src/main/java/org/jfrog/hudson/pipeline/common/types/deployers/Deployer.java b/src/main/java/org/jfrog/hudson/pipeline/common/types/deployers/Deployer.java index 2ef924044..36727a41d 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/common/types/deployers/Deployer.java +++ b/src/main/java/org/jfrog/hudson/pipeline/common/types/deployers/Deployer.java @@ -209,7 +209,7 @@ public void deployArtifacts(BuildInfo buildInfo, TaskListener listener, FilePath String agentName = Utils.getAgentName(ws); if (buildInfo.getAgentName().equals(agentName)) { org.jfrog.hudson.ArtifactoryServer artifactoryServer = Utils.prepareArtifactoryServer(null, server); - Credentials credentials = getDeployerCredentialsConfig().provideCredentials(build.getParent()); + Credentials credentials = getDeployerCredentialsConfig().provideCredentials(build); if (credentials == Credentials.EMPTY_CREDENTIALS) { throw new RuntimeException(String.format( "No matching credentials was found in Jenkins for the supplied credentialsId: '%s' ", diff --git a/src/main/java/org/jfrog/hudson/pipeline/declarative/steps/conan/ConanRemoteStep.java b/src/main/java/org/jfrog/hudson/pipeline/declarative/steps/conan/ConanRemoteStep.java index d72d57610..6a4fc59ea 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/declarative/steps/conan/ConanRemoteStep.java +++ b/src/main/java/org/jfrog/hudson/pipeline/declarative/steps/conan/ConanRemoteStep.java @@ -90,8 +90,8 @@ protected Void runStep() throws Exception { org.jfrog.hudson.ArtifactoryServer artifactoryServer = Utils.prepareArtifactoryServer(null, server); ArtifactoryConfigurator configurator = new ArtifactoryConfigurator(artifactoryServer); CredentialsConfig deployerConfig = CredentialManager.getPreferredDeployer(configurator, artifactoryServer); - String username = deployerConfig.provideCredentials(build.getParent()).getUsername(); - String password = deployerConfig.provideCredentials(build.getParent()).getPassword(); + String username = deployerConfig.provideCredentials(build).getUsername(); + String password = deployerConfig.provideCredentials(build).getPassword(); conanExecutor.execUserAdd(username, password, step.getName()); return null; } diff --git a/src/main/java/org/jfrog/hudson/pipeline/scripted/steps/conan/AddUserStep.java b/src/main/java/org/jfrog/hudson/pipeline/scripted/steps/conan/AddUserStep.java index 54787ae35..25d6323f3 100644 --- a/src/main/java/org/jfrog/hudson/pipeline/scripted/steps/conan/AddUserStep.java +++ b/src/main/java/org/jfrog/hudson/pipeline/scripted/steps/conan/AddUserStep.java @@ -56,8 +56,8 @@ protected Boolean runStep() throws Exception { org.jfrog.hudson.ArtifactoryServer artifactoryServer = Utils.prepareArtifactoryServer(null, step.getServer()); ArtifactoryConfigurator configurator = new ArtifactoryConfigurator(artifactoryServer); CredentialsConfig deployerConfig = CredentialManager.getPreferredDeployer(configurator, artifactoryServer); - String username = deployerConfig.provideCredentials(build.getParent()).getUsername(); - String password = deployerConfig.provideCredentials(build.getParent()).getPassword(); + String username = deployerConfig.provideCredentials(build).getUsername(); + String password = deployerConfig.provideCredentials(build).getPassword(); String serverName = step.getServerName(); ConanExecutor executor = new ConanExecutor(step.getConanHome(), ws, launcher, listener, env, build); executor.execUserAdd(username, password, serverName); diff --git a/src/main/java/org/jfrog/hudson/release/promotion/UnifiedPromoteBuildAction.java b/src/main/java/org/jfrog/hudson/release/promotion/UnifiedPromoteBuildAction.java index 4343ff6a6..9408b902e 100644 --- a/src/main/java/org/jfrog/hudson/release/promotion/UnifiedPromoteBuildAction.java +++ b/src/main/java/org/jfrog/hudson/release/promotion/UnifiedPromoteBuildAction.java @@ -361,7 +361,7 @@ private List getPromotionsUserPluginInfo() { infosToReturn.add(UserPluginInfo.NO_PLUGIN); return infosToReturn; } - return artifactoryServer.getPromotionsUserPluginInfo((DeployerOverrider) configurator, build.getParent()); + return artifactoryServer.getPromotionsUserPluginInfo((DeployerOverrider) configurator, build); } @Override @@ -396,7 +396,7 @@ protected void perform(TaskListener listener) { ArtifactoryServer server = promotionCandidate.getConfigurator().getArtifactoryServer(); String buildName = promotionCandidate.getBuildName(); String buildNumber = promotionCandidate.getBuildNumber(); - try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build.getParent()), + try (ArtifactoryManager artifactoryManager = server.createArtifactoryManager(deployerConfig.provideCredentials(build), ProxyUtils.createProxyConfiguration())) { if ((promotionPlugin != null) && !UserPluginInfo.NO_PLUGIN_KEY.equals(promotionPlugin.getPluginName())) { handlePluginPromotion(listener, artifactoryManager, buildName, buildNumber); diff --git a/src/main/java/org/jfrog/hudson/util/ExtractorUtils.java b/src/main/java/org/jfrog/hudson/util/ExtractorUtils.java index f24c17c0d..e3467cc43 100644 --- a/src/main/java/org/jfrog/hudson/util/ExtractorUtils.java +++ b/src/main/java/org/jfrog/hudson/util/ExtractorUtils.java @@ -318,7 +318,7 @@ private static void setResolverInfo(ArtifactoryClientConfiguration configuration replaceRepositoryInputForValues(configuration, build, inputDownloadReleaseKey, inputDownloadSnapshotKey, env); CredentialsConfig preferredResolver = CredentialManager.getPreferredResolver(context.getResolverOverrider(), context.getServer()); - Credentials resolverCredentials = preferredResolver.provideCredentials(build.getParent()); + Credentials resolverCredentials = preferredResolver.provideCredentials(build); if (StringUtils.isNotEmpty(resolverCredentials.getAccessToken())) { resolverCredentials = resolverCredentials.convertAccessTokenToUsernamePassword(); } @@ -427,7 +427,7 @@ private static void setPublisherInfo(Map env, Run build, B ArtifactoryServer artifactoryServer = context.getArtifactoryServer(); if (artifactoryServer != null) { CredentialsConfig preferredDeployer = CredentialManager.getPreferredDeployer(context.getDeployerOverrider(), artifactoryServer); - Credentials deployerCredentials = preferredDeployer.provideCredentials(build.getParent()); + Credentials deployerCredentials = preferredDeployer.provideCredentials(build); if (StringUtils.isNotEmpty(deployerCredentials.getAccessToken())) { deployerCredentials = deployerCredentials.convertAccessTokenToUsernamePassword(); }