diff --git a/jsign-core/src/main/java/net/jsign/SignerHelper.java b/jsign-core/src/main/java/net/jsign/SignerHelper.java index b5fcbc73..c33d3408 100644 --- a/jsign-core/src/main/java/net/jsign/SignerHelper.java +++ b/jsign-core/src/main/java/net/jsign/SignerHelper.java @@ -369,7 +369,7 @@ private AuthenticodeSigner build() throws SignerException { } try { - initializeProxy(proxyUrl, proxyUser, proxyPass); + initializeProxy(proxyUrl, proxyUser, proxyPass, console); } catch (Exception e) { throw new SignerException("Couldn't initialize proxy", e); } @@ -452,14 +452,29 @@ private Certificate[] loadCertificateChain(File file) throws IOException, Certif } } + /** + * Initialize the proxy. Information is get from env: + * -Dhttp.proxyUrl proxy url http://proxy-server:port (optional) + * -Dhttp.proxyUser proxy username (optional, but considered only if proxyUrl and proxyPassword set) + * -Dhttp.proxyPassword proxy password (optional, but considered only if proxyUrl and proxyUser set) + */ + public static void initializeProxy() throws MalformedURLException { + initializeProxy( + System.getProperty("http.proxyUrl"), + System.getProperty("http.proxyUser"), + System.getProperty("http.proxyPassword"), + null); + } + /** * Initializes the proxy. * * @param proxyUrl the url of the proxy (either as hostname:port or http[s]://hostname:port) * @param proxyUser the username for the proxy authentication * @param proxyPassword the password for the proxy authentication + * @param console console for log. Can be null */ - private void initializeProxy(String proxyUrl, final String proxyUser, final String proxyPassword) throws MalformedURLException { + private static void initializeProxy(String proxyUrl, final String proxyUser, final String proxyPassword, Console console) throws MalformedURLException { // Do nothing if there is no proxy url. if (proxyUrl != null && proxyUrl.trim().length() > 0) { if (!proxyUrl.trim().startsWith("http")) { diff --git a/jsign-core/src/test/java/net/jsign/PESignerTest.java b/jsign-core/src/test/java/net/jsign/PESignerTest.java index 1833eabc..f3f1a2a3 100644 --- a/jsign-core/src/test/java/net/jsign/PESignerTest.java +++ b/jsign-core/src/test/java/net/jsign/PESignerTest.java @@ -19,6 +19,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.net.MalformedURLException; import java.security.KeyStore; import java.security.PrivateKey; import java.security.Security; @@ -39,6 +40,8 @@ import org.bouncycastle.cms.SignerInformation; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.tsp.TSPAlgorithms; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import net.jsign.pe.PEFile; @@ -59,6 +62,11 @@ private KeyStore getKeyStore() throws Exception { return keystore; } + @Before + public void initProxy() throws MalformedURLException { + SignerHelper.initializeProxy(); + } + @Test public void testSign() throws Exception { File sourceFile = new File("target/test-classes/wineyes.exe"); diff --git a/jsign-core/src/test/java/net/jsign/ScriptSignerTest.java b/jsign-core/src/test/java/net/jsign/ScriptSignerTest.java index 84233f0c..8839d2f7 100644 --- a/jsign-core/src/test/java/net/jsign/ScriptSignerTest.java +++ b/jsign-core/src/test/java/net/jsign/ScriptSignerTest.java @@ -19,6 +19,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.net.MalformedURLException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyStore; @@ -27,6 +28,7 @@ import org.apache.commons.io.ByteOrderMark; import org.apache.commons.io.FileUtils; import org.bouncycastle.cms.CMSSignedData; +import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; @@ -45,6 +47,11 @@ protected KeyStore getKeyStore() throws Exception { return keystore; } + @BeforeClass + public static void initProxy() throws MalformedURLException { + SignerHelper.initializeProxy(); + } + @Test public void testSign() throws Exception { File sourceFile = new File("target/test-classes/hello-world." + getFileExtension());