Skip to content

Commit

Permalink
Fix for system property key-value pairs being delimited by space inst…
Browse files Browse the repository at this point in the history
…ead of the equals character (#418)
  • Loading branch information
andrian-sevastyanov committed Feb 27, 2024
1 parent 3f823fb commit c2e5473
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 20 deletions.
Expand Up @@ -286,33 +286,23 @@ private void populateProxyDetails() {
String proxyNtlmDomain = blackDuckProxyInfo.getNtlmDomain().orElse(null);
String proxyNtlmWorkstation = blackDuckProxyInfo.getNtlmWorkstation().orElse(null);

appendSingleArgument("-Dhttp.proxyHost");
appendSingleArgument(proxyHost);
appendSingleArgument("-Dhttp.proxyHost=" + proxyHost);

appendSingleArgument("-Dhttp.proxyPort");
appendSingleArgument(Integer.toString(proxyPort));
appendSingleArgument("-Dhttp.proxyPort=" + Integer.toString(proxyPort));

if (StringUtils.isNotBlank(proxyUsername) && StringUtils.isNotBlank(proxyPassword)) {
appendSingleArgument("-Dhttp.proxyUser");
appendSingleArgument(proxyUsername);

appendSingleArgument("-Dhttp.proxyPassword");
appendSingleArgument(proxyPassword);
appendSingleArgument("-Dhttp.proxyUser=" + proxyUsername);
appendSingleArgument("-Dhttp.proxyPassword=" + proxyPassword);
} else {
// CLI will ignore the proxy host and port if there are no credentials
appendSingleArgument("-Dhttp.proxyUser");
appendSingleArgument("user");

appendSingleArgument("-Dhttp.proxyPassword");
appendSingleArgument("password");
appendSingleArgument("-Dhttp.proxyUser=user");
appendSingleArgument("-Dhttp.proxyPassword=password");
}
if (StringUtils.isNotBlank(proxyNtlmDomain)) {
appendSingleArgument("-Dhttp.auth.ntlm.domain");
appendSingleArgument(proxyNtlmDomain);
appendSingleArgument("-Dhttp.auth.ntlm.domain=" + proxyNtlmDomain);
}
if (StringUtils.isNotBlank(proxyNtlmWorkstation)) {
appendSingleArgument("-Dblackduck.http.auth.ntlm.workstation");
appendSingleArgument(proxyNtlmWorkstation);
appendSingleArgument("-Dblackduck.http.auth.ntlm.workstation=" + proxyNtlmWorkstation);
}
}

Expand Down
@@ -1,6 +1,5 @@
package com.synopsys.integration.blackduck.codelocation.signaturescanner.command;

import static org.junit.Assert.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
Expand All @@ -9,7 +8,6 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.HashSet;

Expand All @@ -30,6 +28,9 @@
import com.synopsys.integration.log.LogLevel;
import com.synopsys.integration.log.PrintStreamIntLogger;
import com.synopsys.integration.rest.HttpUrl;
import com.synopsys.integration.rest.credentials.CredentialsBuilder;
import com.synopsys.integration.rest.proxy.ProxyInfo;
import com.synopsys.integration.rest.proxy.ProxyInfoBuilder;
import com.synopsys.integration.util.IntEnvironmentVariables;
import com.synopsys.integration.util.OperatingSystemType;

Expand Down Expand Up @@ -272,6 +273,43 @@ public void testAdditionalArgumentsSpecified() throws IntegrationException {
assertTrue(commandList.contains("--test"));
}

@Test
public void testNoProxyDetailsAreSetByDefault() throws IntegrationException {
List<String> commandList = createCommandList();

for (String arg : commandList) {
assertFalse(arg.contains("-Dhttp.proxy"));
assertFalse(arg.contains("-Dhttp.auth"));
assertFalse(arg.contains("-Dblackduck.http"));
}
}

@Test
public void testProxyDetailsAreSet() throws IntegrationException {
ProxyInfoBuilder proxyInfoBuilder = ProxyInfo.newBuilder();

CredentialsBuilder credentialsBuilder = new CredentialsBuilder();
credentialsBuilder.setUsernameAndPassword("some_username", "some_password");

proxyInfoBuilder.setCredentials(credentialsBuilder.build());
proxyInfoBuilder.setHost("some_host");
proxyInfoBuilder.setNtlmDomain("some_domain");
proxyInfoBuilder.setNtlmWorkstation("some_workstation");
proxyInfoBuilder.setPort(443);

ProxyInfo proxyInfo = proxyInfoBuilder.build();
scanBatchBuilder.proxyInfo(proxyInfo);

List<String> commandList = createCommandList();

assertTrue(commandList.contains("-Dhttp.proxyHost=some_host"));
assertTrue(commandList.contains("-Dhttp.proxyPort=443"));
assertTrue(commandList.contains("-Dhttp.proxyUser=some_username"));
assertTrue(commandList.contains("-Dhttp.proxyPassword=some_password"));
assertTrue(commandList.contains("-Dhttp.auth.ntlm.domain=some_domain"));
assertTrue(commandList.contains("-Dblackduck.http.auth.ntlm.workstation=some_workstation"));
}

private void populateBuilder(ScanBatchBuilder scanBatchBuilder) {
try {
scanBatchBuilder.blackDuckUrl(new HttpUrl("http://fakeserver.com"));
Expand Down

0 comments on commit c2e5473

Please sign in to comment.