You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2014/10/17 15:04:54 UTC
svn commit: r1632566 -
/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
Author: centic
Date: Fri Oct 17 13:04:53 2014
New Revision: 1632566
URL: http://svn.apache.org/r1632566
Log:
Seems we have slow connection on the Apache Jenkins instance. Thus allow one specific test to fail with a specific ConnectException as we see this happening sometimes in Jenkins but should not fail the unit test suite of POI because of such infrastructure problems
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?rev=1632566&r1=1632565&r2=1632566&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java Fri Oct 17 13:04:53 2014
@@ -23,10 +23,7 @@
================================================================= */
package org.apache.poi.poifs.crypt;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
import java.io.File;
import java.io.FileInputStream;
@@ -34,7 +31,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.net.MalformedURLException;
+import java.net.ConnectException;
import java.net.URL;
import java.net.URLClassLoader;
import java.security.Key;
@@ -94,19 +91,23 @@ public class TestSignatureInfo {
@BeforeClass
- public static void initBouncy() throws MalformedURLException {
+ public static void initBouncy() throws IOException {
File bcProvJar = new File("lib/bcprov-ext-jdk15on-1.51.jar");
File bcPkixJar = new File("lib/bcpkix-jdk15on-151.jar");
ClassLoader cl = Thread.currentThread().getContextClassLoader();
URLClassLoader ucl = new URLClassLoader(new URL[]{bcProvJar.toURI().toURL(),bcPkixJar.toURI().toURL()}, cl);
- Thread.currentThread().setContextClassLoader(ucl);
- CryptoFunctions.registerBouncyCastle();
-
- /*** TODO : set cal to now ... only set to fixed date for debugging ... */
- cal = Calendar.getInstance();
- cal.clear();
- cal.setTimeZone(TimeZone.getTimeZone("UTC"));
- cal.set(2014, 7, 6, 21, 42, 12);
+ try {
+ Thread.currentThread().setContextClassLoader(ucl);
+ CryptoFunctions.registerBouncyCastle();
+
+ /*** TODO : set cal to now ... only set to fixed date for debugging ... */
+ cal = Calendar.getInstance();
+ cal.clear();
+ cal.setTimeZone(TimeZone.getTimeZone("UTC"));
+ cal.set(2014, 7, 6, 21, 42, 12);
+ } finally {
+ ucl.close();
+ }
}
@Test
@@ -154,6 +155,37 @@ public class TestSignatureInfo {
for (String testFile : testFiles) {
OPCPackage pkg = OPCPackage.open(testdata.getFile(testFile), PackageAccess.READ);
+ try {
+ SignatureConfig sic = new SignatureConfig();
+ sic.setOpcPackage(pkg);
+ SignatureInfo si = new SignatureInfo();
+ si.setSignatureConfig(sic);
+ List<X509Certificate> result = new ArrayList<X509Certificate>();
+ for (SignaturePart sp : si.getSignatureParts()) {
+ if (sp.validate()) {
+ result.add(sp.getSigner());
+ }
+ }
+
+ assertNotNull(result);
+ assertEquals("test-file: "+testFile, 1, result.size());
+ X509Certificate signer = result.get(0);
+ LOG.log(POILogger.DEBUG, "signer: " + signer.getSubjectX500Principal());
+
+ boolean b = si.verifySignature();
+ assertTrue("test-file: "+testFile, b);
+ pkg.revert();
+ } finally {
+ pkg.close();
+ }
+ }
+ }
+
+ @Test
+ public void getMultiSigners() throws Exception {
+ String testFile = "hello-world-signed-twice.docx";
+ OPCPackage pkg = OPCPackage.open(testdata.getFile(testFile), PackageAccess.READ);
+ try {
SignatureConfig sic = new SignatureConfig();
sic.setOpcPackage(pkg);
SignatureInfo si = new SignatureInfo();
@@ -164,44 +196,21 @@ public class TestSignatureInfo {
result.add(sp.getSigner());
}
}
-
+
assertNotNull(result);
- assertEquals("test-file: "+testFile, 1, result.size());
- X509Certificate signer = result.get(0);
- LOG.log(POILogger.DEBUG, "signer: " + signer.getSubjectX500Principal());
-
+ assertEquals("test-file: "+testFile, 2, result.size());
+ X509Certificate signer1 = result.get(0);
+ X509Certificate signer2 = result.get(1);
+ LOG.log(POILogger.DEBUG, "signer 1: " + signer1.getSubjectX500Principal());
+ LOG.log(POILogger.DEBUG, "signer 2: " + signer2.getSubjectX500Principal());
+
boolean b = si.verifySignature();
assertTrue("test-file: "+testFile, b);
pkg.revert();
+ } finally {
+ pkg.close();
}
}
-
- @Test
- public void getMultiSigners() throws Exception {
- String testFile = "hello-world-signed-twice.docx";
- OPCPackage pkg = OPCPackage.open(testdata.getFile(testFile), PackageAccess.READ);
- SignatureConfig sic = new SignatureConfig();
- sic.setOpcPackage(pkg);
- SignatureInfo si = new SignatureInfo();
- si.setSignatureConfig(sic);
- List<X509Certificate> result = new ArrayList<X509Certificate>();
- for (SignaturePart sp : si.getSignatureParts()) {
- if (sp.validate()) {
- result.add(sp.getSigner());
- }
- }
-
- assertNotNull(result);
- assertEquals("test-file: "+testFile, 2, result.size());
- X509Certificate signer1 = result.get(0);
- X509Certificate signer2 = result.get(1);
- LOG.log(POILogger.DEBUG, "signer 1: " + signer1.getSubjectX500Principal());
- LOG.log(POILogger.DEBUG, "signer 2: " + signer2.getSubjectX500Principal());
-
- boolean b = si.verifySignature();
- assertTrue("test-file: "+testFile, b);
- pkg.revert();
- }
@Test
public void testSignSpreadsheet() throws Exception {
@@ -215,6 +224,7 @@ public class TestSignatureInfo {
public void testManipulation() throws Exception {
// sign & validate
String testFile = "hello-world-unsigned.xlsx";
+ @SuppressWarnings("resource") // closed via XSSFWorkbook.close() below ?!
OPCPackage pkg = OPCPackage.open(copy(testdata.getFile(testFile)), PackageAccess.READ_WRITE);
sign(pkg, "Test", "CN=Test", 1);
@@ -298,11 +308,15 @@ public class TestSignatureInfo {
if (mockTsp) {
TimeStampService tspService = new TimeStampService(){
+ @Override
public byte[] timeStamp(byte[] data, RevocationData revocationData) throws Exception {
revocationData.addCRL(crl);
return "time-stamp-token".getBytes();
}
- public void setSignatureConfig(SignatureConfig config) {}
+ @Override
+ public void setSignatureConfig(SignatureConfig config) {
+ // empty on purpose
+ }
};
signatureConfig.setTspService(tspService);
} else {
@@ -327,6 +341,7 @@ public class TestSignatureInfo {
revocationData.addOCSP(ocspResp.getEncoded());
RevocationDataService revocationDataService = new RevocationDataService(){
+ @Override
public RevocationData getRevocationData(List<X509Certificate> certificateChain) {
return revocationData;
}
@@ -336,7 +351,14 @@ public class TestSignatureInfo {
// operate
SignatureInfo si = new SignatureInfo();
si.setSignatureConfig(signatureConfig);
- si.confirmSignature();
+ try {
+ si.confirmSignature();
+ } catch (RuntimeException e) {
+ // only allow a ConnectException because of timeout, we see this in Jenkins from time to time...
+ assertNotNull("Only allowing ConnectException here, but had: " + e, e.getCause());
+ assertTrue("Only allowing ConnectException here, but had: " + e, e.getCause() instanceof ConnectException);
+ assertTrue("Only allowing ConnectException here, but had: " + e, e.getCause().getMessage().contains("timed out"));
+ }
// verify
Iterator<SignaturePart> spIter = si.getSignatureParts().iterator();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org