diff --git a/sonar/ooxml-schema-security/pom.xml b/sonar/ooxml-schema-security/pom.xml new file mode 100644 index 000000000..7debcf290 --- /dev/null +++ b/sonar/ooxml-schema-security/pom.xml @@ -0,0 +1,84 @@ + + 4.0.0 + + org.apache.poi + poi-parent + 3.12-SNAPSHOT + + poi-ooxml-schema-security + jar + + Apach POI - Openxmlformats Security-Schema package + + + + target/generated-sources/* + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.6 + + + build-jar + generate-sources + + + + + + + + + run + + + + + + + + maven-resources-plugin + 2.6 + + + copy-sources + generate-sources + + copy-resources + + + ${basedir}/src/main/resources + + + target/jar + + + + + + + + + + + + ${project.groupId} + poi-main + ${project.version} + + + ${project.groupId} + poi-scratchpad + ${project.version} + + + diff --git a/sonar/ooxml/pom.xml b/sonar/ooxml/pom.xml index 994b232ea..4df81fe12 100644 --- a/sonar/ooxml/pom.xml +++ b/sonar/ooxml/pom.xml @@ -22,7 +22,6 @@ copy-sources - generate-sources copy-resources @@ -38,7 +37,6 @@ copy-resources - generate-resources copy-resources @@ -54,7 +52,6 @@ copy-tests - generate-test-sources copy-resources @@ -97,6 +94,11 @@ poi-ooxml-schema-encryption ${project.version} + + ${project.groupId} + poi-ooxml-schema-security + ${project.version} + ${project.groupId} poi-main @@ -116,6 +118,22 @@ 2.6.0 + + org.bouncycastle + bcpkix-jdk15on + 1.51 + + + org.bouncycastle + bcprov-jdk15on + 1.51 + + + org.apache.santuario + xmlsec + 2.0.1 + + junit diff --git a/sonar/pom.xml b/sonar/pom.xml index 99796faaf..6117e9355 100644 --- a/sonar/pom.xml +++ b/sonar/pom.xml @@ -56,6 +56,7 @@ main ooxml-schema ooxml-schema-encryption + ooxml-schema-security ooxml scratchpad excelant @@ -100,7 +101,8 @@ true org.apache.poi.util.NullLogger - -Duser.language=en -Duser.country=US + + -Duser.language=en -Duser.country=US -Xmx512m **/All*Tests.java **/TestUnfixedBugs.java diff --git a/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java b/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java index d0eeb3d47..0835c566b 100644 --- a/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java +++ b/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java @@ -33,6 +33,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.lang.reflect.Method; import java.net.ConnectException; import java.net.HttpURLConnection; @@ -632,13 +633,31 @@ public class TestSignatureInfo { private static File copy(File input) throws IOException { String extension = input.getName().replaceAll(".*?(\\.[^.]+)?$", "$1"); - if (extension == null || "".equals(extension)) extension = ".zip"; - File tmpFile = new File("build", "sigtest"+extension); - FileOutputStream fos = new FileOutputStream(tmpFile); - FileInputStream fis = new FileInputStream(input); - IOUtils.copy(fis, fos); - fis.close(); - fos.close(); + if (extension == null || "".equals(extension)) { + extension = ".zip"; + } + + // ensure that we create the "build" directory as it might not be existing + // in the Sonar Maven runs where we are at a different source directory + File buildDir = new File("build"); + if(!buildDir.exists()) { + assertTrue("Failed to create " + buildDir.getAbsolutePath(), + buildDir.mkdirs()); + } + File tmpFile = new File(buildDir, "sigtest"+extension); + + OutputStream fos = new FileOutputStream(tmpFile); + try { + InputStream fis = new FileInputStream(input); + try { + IOUtils.copy(fis, fos); + } finally { + fis.close(); + } + } finally { + fos.close(); + } + return tmpFile; } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java index 2a7752c52..1409d4227 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -1923,6 +1923,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { @Test public void test57196_WorkbookEvaluator() { + String previousLogger = System.getProperty("org.apache.poi.util.POILogger"); //System.setProperty("org.apache.poi.util.POILogger", "org.apache.poi.util.SystemOutLogger"); //System.setProperty("poi.log.level", "3"); try { @@ -1990,7 +1991,11 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { workbookEvaluator.setDebugEvaluationOutputForNextEval(true); workbookEvaluator.evaluate(new XSSFEvaluationCell(cell)); } finally { - System.clearProperty("org.apache.poi.util.POILogger"); + if(previousLogger == null) { + System.clearProperty("org.apache.poi.util.POILogger"); + } else { + System.setProperty("org.apache.poi.util.POILogger", previousLogger); + } System.clearProperty("poi.log.level"); } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java index fbec25c67..6f8c3f087 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java @@ -17,6 +17,8 @@ package org.apache.poi.xssf.usermodel; +import java.io.IOException; + import org.apache.poi.openxml4j.opc.PackageRelationship; import org.apache.poi.openxml4j.opc.PackageRelationshipCollection; import org.apache.poi.ss.usermodel.BaseTestHyperlink; @@ -32,15 +34,6 @@ public final class TestXSSFHyperlink extends BaseTestHyperlink { super(XSSFITestDataProvider.instance); } - @Override - protected void setUp() { - // Use system out logger - System.setProperty( - "org.apache.poi.util.POILogger", - "org.apache.poi.util.SystemOutLogger" - ); - } - public void testLoadExisting() { XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx"); assertEquals(3, workbook.getNumberOfSheets()); @@ -94,7 +87,7 @@ public final class TestXSSFHyperlink extends BaseTestHyperlink { } } - public void testInvalidURLs() { + public void testInvalidURLs() throws IOException { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFCreationHelper createHelper = workbook.getCreationHelper(); @@ -111,6 +104,7 @@ public final class TestXSSFHyperlink extends BaseTestHyperlink { } } + workbook.close(); } public void testLoadSave() { diff --git a/src/scratchpad/testcases/org/apache/poi/hdf/extractor/TestWordDocument.java b/src/scratchpad/testcases/org/apache/poi/hdf/extractor/TestWordDocument.java index f0941674f..e8c04a331 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdf/extractor/TestWordDocument.java +++ b/src/scratchpad/testcases/org/apache/poi/hdf/extractor/TestWordDocument.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; +import org.apache.poi.POIDataSamples; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.hwpf.extractor.WordExtractor; @@ -38,7 +39,7 @@ public class TestWordDocument { //WordDocument.main(new String[] {"test-data/document/Word95.doc", "/tmp/test.doc"}); //WordDocument.main(new String[] {"test-data/document/Word6.doc", "/tmp/test.doc"}); - WordDocument.main(new String[] {"test-data/document/53446.doc", "/tmp/test.doc"}); + WordDocument.main(new String[] {POIDataSamples.getDocumentInstance().getFile("53446.doc").getAbsolutePath(), "/tmp/test.doc"}); } @SuppressWarnings("deprecation") @@ -53,7 +54,7 @@ public class TestWordDocument { assertTrue("Had: " + text, text.contains("Just a \u201Ctest\u201D")); extractor.close(); - WordDocument wordDoc = new WordDocument("test-data/document/47304.doc"); + WordDocument wordDoc = new WordDocument(POIDataSamples.getDocumentInstance().getFile("47304.doc").getAbsolutePath()); StringWriter docTextWriter = new StringWriter(); PrintWriter out = new PrintWriter(docTextWriter); diff --git a/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java b/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java index 5b632ce83..f7be2acf7 100644 --- a/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java +++ b/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java @@ -33,15 +33,6 @@ import org.apache.poi.util.DummyPOILogger; * @author Marc Johnson */ public final class TestRawDataBlock extends TestCase { - static { - // We always want to use our own - // logger - System.setProperty( - "org.apache.poi.util.POILogger", - "org.apache.poi.util.DummyPOILogger" - ); - } - /** * Test creating a normal RawDataBlock */ @@ -130,7 +121,7 @@ public final class TestRawDataBlock extends TestCase { assertEquals( "7 - Unable to read entire block; "+bts+" read before EOF; expected 512 bytes. Your document was either written by software that ignores the spec, or has been truncated!", - (String)(logger.logged.get(0)) + logger.logged.get(0) ); } else { assertEquals(0, logger.logged.size()); diff --git a/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java b/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java index 6dabfc043..91be31e34 100644 --- a/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java +++ b/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java @@ -32,15 +32,6 @@ import org.apache.poi.util.DummyPOILogger; * @author Marc Johnson */ public final class TestRawDataBlockList extends TestCase { - static { - // We always want to use our own - // logger - System.setProperty( - "org.apache.poi.util.POILogger", - "org.apache.poi.util.DummyPOILogger" - ); - } - /** * Test creating a normal RawDataBlockList */