Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.

SIGINT-1227: Address feedbacks of jenkins infra team #104

Merged
merged 4 commits into from
Oct 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,9 @@
<properties>
<revision>1.0.0</revision>
<changelist>-SNAPSHOT</changelist>
<java.version>11</java.version>
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
<jenkins.version>2.401.3</jenkins.version>
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
<spotless.check.skip>true</spotless.check.skip>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -71,12 +69,10 @@
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>639.v6eca_cd8c04a_a_</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-bitbucket-branch-source</artifactId>
<version>832.v43175a_425ea_6</version>
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
Expand Down Expand Up @@ -107,19 +103,16 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.4</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -409,11 +410,14 @@ public ListBoxModel doFillProductItems() {
public class Execution extends SynchronousNonBlockingStepExecution<Integer> {
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);
Expand All @@ -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());
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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);
}
Expand All @@ -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");
}
Expand Down