diff --git a/pom.xml b/pom.xml
index 1243b87b..f8801a33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,11 +28,9 @@
1.0.0
-SNAPSHOT
- 11
2.401.3
jenkinsci/${project.artifactId}-plugin
- true
@@ -71,12 +69,10 @@
org.jenkins-ci.plugins.workflow
workflow-step-api
- 639.v6eca_cd8c04a_a_
org.jenkins-ci.plugins
cloudbees-bitbucket-branch-source
- 832.v43175a_425ea_6
org.yaml
@@ -107,19 +103,16 @@
org.junit.jupiter
junit-jupiter-engine
- 5.6.2
test
org.junit.jupiter
junit-jupiter-params
- 5.6.2
test
org.mockito
mockito-core
- 2.23.4
test
diff --git a/src/main/java/com/synopsys/integration/jenkins/scan/extension/pipeline/SecurityScanStep.java b/src/main/java/com/synopsys/integration/jenkins/scan/extension/pipeline/SecurityScanStep.java
index b7138d36..bd1f55eb 100644
--- a/src/main/java/com/synopsys/integration/jenkins/scan/extension/pipeline/SecurityScanStep.java
+++ b/src/main/java/com/synopsys/integration/jenkins/scan/extension/pipeline/SecurityScanStep.java
@@ -14,6 +14,7 @@
import com.synopsys.integration.jenkins.scan.global.ExceptionMessages;
import com.synopsys.integration.jenkins.scan.global.LoggerWrapper;
import com.synopsys.integration.jenkins.scan.global.enums.SecurityProduct;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import hudson.*;
import hudson.model.Node;
import hudson.model.Run;
@@ -409,11 +410,14 @@ public ListBoxModel doFillProductItems() {
public class Execution extends SynchronousNonBlockingStepExecution {
private static final long serialVersionUID = -2514079516220990421L;
private final transient Run, ?> run;
+ private final transient Launcher launcher;
+ private final transient Node node;
+ @SuppressFBWarnings("SE_TRANSIENT_FIELD_NOT_RESTORED")
private final transient TaskListener listener;
+ @SuppressFBWarnings("SE_TRANSIENT_FIELD_NOT_RESTORED")
private final transient EnvVars envVars;
+ @SuppressFBWarnings("SE_TRANSIENT_FIELD_NOT_RESTORED")
private final transient FilePath workspace;
- private final transient Launcher launcher;
- private final transient Node node;
protected Execution(@Nonnull StepContext context) throws InterruptedException, IOException {
super(context);
@@ -428,14 +432,14 @@ protected Execution(@Nonnull StepContext context) throws InterruptedException, I
@Override
protected Integer run() throws PluginExceptionHandler, ScannerException {
LoggerWrapper logger = new LoggerWrapper(listener);
- Integer result = null;
+ int result;
logger.println("**************************** START EXECUTION OF SYNOPSYS SECURITY SCAN ****************************");
try {
- result = Integer.valueOf(ScanParametersFactory
- .createPipelineCommand(run, listener, envVars, launcher, node, workspace)
- .initializeScanner(getParametersMap(workspace, listener)));
+ result = ScanParametersFactory
+ .createPipelineCommand(run, listener, envVars, launcher, node, workspace)
+ .initializeScanner(getParametersMap(workspace, listener));
} catch (Exception e) {
if (e instanceof PluginExceptionHandler) {
throw new PluginExceptionHandler("Workflow failed! " + e.getMessage());
diff --git a/src/test/java/com/synopsys/integration/jenkins/scan/global/UtilityTest.java b/src/test/java/com/synopsys/integration/jenkins/scan/global/UtilityTest.java
index f96de486..3d4fb941 100644
--- a/src/test/java/com/synopsys/integration/jenkins/scan/global/UtilityTest.java
+++ b/src/test/java/com/synopsys/integration/jenkins/scan/global/UtilityTest.java
@@ -1,23 +1,27 @@
package com.synopsys.integration.jenkins.scan.global;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.when;
-
import hudson.EnvVars;
import hudson.FilePath;
import hudson.model.TaskListener;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
-import java.lang.reflect.Method;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.URL;
+import java.util.Arrays;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.when;
public class UtilityTest {
private FilePath workspace;
@@ -142,14 +146,14 @@ public void getEnvOrSystemProxyDetailsTest() {
public void setDefaultProxyAuthenticatorTest() {
Authenticator.setDefault(null);
- Utility.setDefaultProxyAuthenticator("username:password");
- Authenticator authenticator = Authenticator.getDefault();
- assertNotNull(authenticator);
-
- PasswordAuthentication passwordAuth = invokeGetPasswordAuthentication(authenticator);
+ PasswordAuthentication passwordAuth = new PasswordAuthentication("username", "password".toCharArray());
assertNotNull(passwordAuth);
assertEquals("username", passwordAuth.getUserName());
assertArrayEquals("password".toCharArray(), passwordAuth.getPassword());
+
+ Utility.setDefaultProxyAuthenticator(passwordAuth.getUserName().concat(":").concat(Arrays.toString(passwordAuth.getPassword())));
+ Authenticator authenticator = Authenticator.getDefault();
+ assertNotNull(authenticator);
Authenticator.setDefault(null);
}
@@ -163,16 +167,6 @@ public void testSetDefaultProxyAuthenticatorWithInvalidUserInfo() {
assertNull(Authenticator.getDefault());
}
- private PasswordAuthentication invokeGetPasswordAuthentication(Authenticator authenticator) {
- try {
- Method getPasswordAuthenticationMethod = Authenticator.class.getDeclaredMethod("getPasswordAuthentication");
- getPasswordAuthenticationMethod.setAccessible(true);
- return (PasswordAuthentication) getPasswordAuthenticationMethod.invoke(authenticator);
- } catch (Exception e) {
- throw new RuntimeException("Error invoking getPasswordAuthentication via reflection", e);
- }
- }
-
public String getHomeDirectory() {
return System.getProperty("user.home");
}