You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2023/06/13 08:30:50 UTC
[santuario-xml-security-java] branch main updated: Cleanups in tests (#176)
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/santuario-xml-security-java.git
The following commit(s) were added to refs/heads/main by this push:
new 53205c8e Cleanups in tests (#176)
53205c8e is described below
commit 53205c8e9b43b0a62db351a06e22a45fd4f99b3d
Author: David Matějček <da...@omnifish.ee>
AuthorDate: Tue Jun 13 10:30:43 2023 +0200
Cleanups in tests (#176)
- Created XmlSecTestEnvironment to manage filesystem dependency
- Fixed many IO leaks in tests - unclosed streams
- Fixed VersionTest
- Moved javax tests to a subpackage; it fixed issues with java modules.
Signed-off-by: David Matějček <da...@omnifish.ee>
---
.../org/apache/xml/security/utils/XMLUtils.java | 94 +++++++++--
.../xml/crypto/test/dsig/ClassLoaderTest.java | 134 ---------------
.../xml/security/test/XmlSecTestEnvironment.java | 123 ++++++++++++++
.../dom/c14n/implementations/Bug45961Test.java | 18 +-
.../c14n/implementations/Canonicalizer11Test.java | 89 +++++-----
.../Canonicalizer20010315ExclusiveTest.java | 89 ++++------
.../implementations/Canonicalizer20010315Test.java | 58 ++++---
.../implementations/ExclusiveC14NInteropTest.java | 27 +--
.../test/dom/encryption/BaltimoreEncTest.java | 115 ++++++-------
.../test/dom/encryption/XMLEncryption11Test.java | 182 ++++-----------------
.../security/test/dom/interop/BaltimoreTest.java | 84 +++++-----
.../test/dom/interop/BaltimoreXalanTest.java | 60 +++----
.../xml/security/test/dom/interop/IAIKTest.java | 69 ++++----
.../xml/security/test/dom/interop/IBMTest.java | 46 +++---
.../security/test/dom/interop/InteropTestBase.java | 61 +++----
.../security/test/dom/interop/RSASecurityTest.java | 26 +--
.../test/dom/keys/DEREncodedKeyValueTest.java | 22 +--
.../test/dom/keys/KeyInfoReferenceTest.java | 13 +-
.../keys/content/x509/XMLX509CertificateTest.java | 43 ++---
.../dom/keys/content/x509/XMLX509DigestTest.java | 22 +--
.../test/dom/keys/content/x509/XMLX509SKITest.java | 18 +-
.../keys/content/x509/XMLX509SubjectNameTest.java | 19 +--
.../keyresolver/KeyInfoReferenceResolverTest.java | 24 +--
.../test/dom/keys/keyresolver/KeyResolverTest.java | 10 +-
.../keyresolver/RetrievalMethodResolverTest.java | 26 +--
.../keys/keyresolver/X509DigestResolverTest.java | 24 +--
.../dom/keys/storage/KeyStoreResolverTest.java | 15 +-
.../test/dom/keys/storage/StorageResolverTest.java | 21 +--
.../dom/secure_val/ForbiddenAlgorithmTest.java | 30 +---
.../test/dom/secure_val/ForbiddenRefCountTest.java | 36 +---
.../dom/secure_val/ForbiddenReferenceTest.java | 33 +---
.../secure_val/ForbiddenRetrievalMethodTest.java | 14 +-
.../test/dom/secure_val/WrappingAttackTest.java | 59 ++-----
.../test/dom/signature/CreateSignatureTest.java | 34 +---
.../dom/signature/CreateSignatureXalanTest.java | 136 +++------------
.../test/dom/signature/ECDSASignatureTest.java | 14 +-
.../test/dom/signature/EDDSASignatureTest.java | 29 ++--
.../test/dom/signature/HMACOutputLengthTest.java | 27 +--
.../test/dom/signature/InvalidKeyTest.java | 21 +--
.../security/test/dom/signature/KeyValueTest.java | 23 +--
.../security/test/dom/signature/NoKeyInfoTest.java | 26 +--
.../PreCalculatedDigestSignatureTest.java | 62 +++----
.../dom/signature/ProcessingInstructionTest.java | 28 ++--
.../test/dom/signature/Santuario499Test.java | 3 -
.../test/dom/signature/SignatureReferenceTest.java | 41 ++---
.../security/test/dom/signature/SignatureTest.java | 36 +---
.../dom/signature/UnknownAlgoSignatureTest.java | 36 ++--
.../security/test/dom/signature/X509DataTest.java | 18 +-
.../test/dom/signature/XMLSignatureInputTest.java | 3 -
.../dom/signature/XPointerResourceResolver.java | 4 +-
.../security/test/dom/signature/XmlSecTest.java | 16 +-
.../implementations/TransformXSLTTest.java | 39 ++---
.../test/dom/utils/JDKXPathFactoryTest.java | 5 +-
.../test/dom/utils/resolver/OfflineResolver.java | 27 +--
.../dom/utils/resolver/ResourceResolverTest.java | 10 +-
.../xml/security/test/dom/xalan/XalanXPathAPI.java | 5 +-
.../xml/crypto}/KeySelectorExceptionTest.java | 2 +-
.../test/javax/xml/crypto}/KeySelectorTest.java | 2 +-
.../test/javax/xml/crypto}/KeySelectors.java | 2 +-
.../javax/xml/crypto}/OctetStreamDataTest.java | 2 +-
.../security/test/javax/xml/crypto}/dsig/AppA.java | 2 +-
.../security/test/javax/xml/crypto}/dsig/AppB.java | 2 +-
.../javax/xml/crypto}/dsig/Baltimore18Test.java | 18 +-
.../javax/xml/crypto}/dsig/Baltimore23Test.java | 13 +-
.../xml/crypto}/dsig/Baltimore23XalanTest.java | 30 ++--
.../xml/crypto}/dsig/BaltimoreExcC14n1Test.java | 24 +--
.../javax/xml/crypto}/dsig/BaltimoreIaik2Test.java | 22 +--
.../dsig/BaltimoreXPathFilter2ThreeTest.java | 18 +-
.../test/javax/xml/crypto}/dsig/C14N11Test.java | 27 ++-
.../crypto}/dsig/CanonicalizationMethodTest.java | 2 +-
.../javax/xml/crypto/dsig/ClassLoaderTest.java | 118 +++++++++++++
.../javax/xml/crypto}/dsig/ComRSASecurityTest.java | 26 ++-
.../xml/crypto}/dsig/CreateBaltimore23Test.java | 143 ++++++++--------
.../xml/crypto}/dsig/CreateInteropExcC14NTest.java | 64 +++++---
.../crypto}/dsig/CreateInteropXFilter2Test.java | 66 +++++---
.../crypto}/dsig/CreateInteropXMLDSig11Test.java | 5 +-
.../xml/crypto}/dsig/CreatePhaosXMLDSig3Test.java | 4 +-
.../test/javax/xml/crypto}/dsig/DetachedTest.java | 2 +-
.../javax/xml/crypto}/dsig/DigestMethodTest.java | 2 +-
.../test/javax/xml/crypto}/dsig/Driver.java | 2 +-
.../javax/xml/crypto}/dsig/EdDSATestAbstract.java | 4 +-
.../xml/crypto}/dsig/EnvelopingSignatureTest.java | 2 +-
.../crypto}/dsig/HMACSignatureAlgorithmTest.java | 4 +-
.../xml/crypto}/dsig/IaikCoreFeaturesTest.java | 61 ++++---
.../xml/crypto}/dsig/IaikSignatureAlgosTest.java | 22 ++-
.../javax/xml/crypto}/dsig/IaikTransformsTest.java | 22 +--
.../javax/xml/crypto}/dsig/InteropC14nTest.java | 27 ++-
.../xml/crypto}/dsig/InteropXMLDSig11Test.java | 18 +-
.../xml/crypto}/dsig/JSRForbiddenRefCountTest.java | 22 +--
.../crypto}/dsig/JSRForbiddenReferenceTest.java | 15 +-
.../xml/crypto}/dsig/JSRWrappingAttackTest.java | 18 +-
.../dsig/LocalHttpCacheURIDereferencer.java | 45 +++--
.../test/javax/xml/crypto}/dsig/ManifestTest.java | 2 +-
.../xml/crypto}/dsig/PKSignatureAlgorithmTest.java | 4 +-
.../javax/xml/crypto}/dsig/PhaosXMLDSig3Test.java | 14 +-
.../xml/crypto}/dsig/PhaosXMLDSig3XalanTest.java | 31 ++--
.../test/javax/xml/crypto}/dsig/ReferenceTest.java | 2 +-
.../javax/xml/crypto}/dsig/SecureXSLTTest.java | 56 +++----
.../crypto}/dsig/SignatureDigestMethodTest.java | 4 +-
.../xml/crypto}/dsig/SignatureMethodTest.java | 2 +-
.../xml/crypto}/dsig/SignaturePropertiesTest.java | 2 +-
.../xml/crypto}/dsig/SignaturePropertyTest.java | 2 +-
.../javax/xml/crypto}/dsig/SignatureValidator.java | 95 ++++++-----
.../crypto}/dsig/SignatureValidatorEdDSATest.java | 14 +-
.../javax/xml/crypto}/dsig/SignedInfoTest.java | 2 +-
.../test/javax/xml/crypto}/dsig/TestUtils.java | 2 +-
.../test/javax/xml/crypto}/dsig/TransformTest.java | 2 +-
.../xml/crypto}/dsig/ValidateSignatureTest.java | 33 ++--
.../javax/xml/crypto}/dsig/X509KeySelector.java | 2 +-
.../test/javax/xml/crypto}/dsig/XMLObjectTest.java | 2 +-
.../javax/xml/crypto}/dsig/XMLSignContextTest.java | 2 +-
.../xml/crypto}/dsig/XMLSignatureEdDSATest.java | 47 +++---
.../xml/crypto}/dsig/XMLSignatureFactoryTest.java | 40 +++--
.../javax/xml/crypto}/dsig/XMLSignatureTest.java | 79 +++++----
.../xml/crypto}/dsig/XMLValidateContextTest.java | 2 +-
.../crypto}/dsig/dom/DOMValidateContextTest.java | 18 +-
.../crypto}/dsig/keyinfo/KeyInfoFactoryTest.java | 2 +-
.../xml/crypto}/dsig/keyinfo/KeyInfoTest.java | 2 +-
.../xml/crypto}/dsig/keyinfo/KeyNameTest.java | 2 +-
.../xml/crypto}/dsig/keyinfo/KeyValueTest.java | 2 +-
.../xml/crypto}/dsig/keyinfo/PGPDataTest.java | 2 +-
.../crypto}/dsig/keyinfo/RetrievalMethodTest.java | 2 +-
.../xml/crypto}/dsig/keyinfo/X509DataTest.java | 2 +-
.../crypto}/dsig/keyinfo/X509IssuerSerialTest.java | 2 +-
.../test/stax/InputProcessorChainTest.java | 7 +-
.../test/stax/XMLSecurityStreamReaderTest.java | 7 +-
.../test/stax/XMLSecurityStreamWriterTest.java | 2 +-
.../test/stax/encryption/BaltimoreEncTest.java | 45 +++--
.../stax/encryption/EncryptionCreationTest.java | 50 +++---
.../encryption/KeyWrapEncryptionCreationTest.java | 24 +--
.../SymmetricEncryptionCreationTest.java | 24 +--
.../test/stax/encryption/XMLEncryption11Test.java | 4 +-
.../signature/AbstractSignatureCreationTest.java | 7 +-
.../AbstractSignatureVerificationTest.java | 10 +-
.../signature/BaltimoreRemoteReferenceTest.java | 10 +-
.../stax/signature/PKSignatureCreationTest.java | 36 ++--
.../SignatureCreationReferenceURIResolverTest.java | 45 +++--
.../test/stax/signature/SignatureCreationTest.java | 86 +++++-----
.../signature/SignatureDigestCreationTest.java | 22 +--
.../stax/signature/SignatureEncryptionTest.java | 10 +-
.../stax/signature/SignatureHMACCreationTest.java | 12 +-
...ionReferenceURIResolverRemoteReferenceTest.java | 18 +-
.../stax/utils/HttpRequestRedirectorProxy.java | 17 +-
.../xml/security/test/stax/utils/KeyLoader.java | 26 ++-
.../test/stax/utils/XmlReaderToWriter.java | 26 +--
.../test}/javax/xml/crypto/dsig/demo.signed.xml | 0
.../javax/xml/crypto/dsig/envelopingSignature.xml | 0
.../security/test}/javax/xml/crypto/dsig/input.xml | 0
.../javax/xml/crypto/dsig/invalid-signature.xml | 0
.../test}/javax/xml/crypto/dsig/rfc3161.txt | 0
...ture-enveloping-hmac-sha1-trunclen-0-attack.xml | 0
...ture-enveloping-hmac-sha1-trunclen-8-attack.xml | 0
.../dsig/signature-enveloping-rsa-template.xml | 0
.../dsig/signature-external-c14n-xmlatrs.xml | 0
.../test}/javax/xml/crypto/dsig/signature1.xml | 0
.../test}/javax/xml/crypto/dsig/signature2.xml | 0
.../test}/javax/xml/crypto/dsig/signature3.xml | 0
.../test}/javax/xml/crypto/dsig/xml-stylesheet | 0
.../test}/javax/xml/crypto/dsig/xml-stylesheet.b64 | 0
.../javax/xml/crypto/dsig/xmldsig-xfilter2.xml | 0
160 files changed, 1802 insertions(+), 2366 deletions(-)
diff --git a/src/main/java/org/apache/xml/security/utils/XMLUtils.java b/src/main/java/org/apache/xml/security/utils/XMLUtils.java
index 8c72d67c..7b03ed59 100644
--- a/src/main/java/org/apache/xml/security/utils/XMLUtils.java
+++ b/src/main/java/org/apache/xml/security/utils/XMLUtils.java
@@ -18,10 +18,14 @@
*/
package org.apache.xml.security.utils;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigInteger;
+import java.nio.file.Files;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -37,6 +41,8 @@ import org.apache.xml.security.c14n.InvalidCanonicalizerException;
import org.apache.xml.security.parser.XMLParser;
import org.apache.xml.security.parser.XMLParserException;
import org.apache.xml.security.parser.XMLParserImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -45,6 +51,8 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* DOM and XML accessibility and comfort functions.
*
@@ -55,8 +63,7 @@ public final class XMLUtils {
AccessController.doPrivileged(
(PrivilegedAction<Boolean>) () -> Boolean.getBoolean("org.apache.xml.security.ignoreLineBreaks"));
- private static final org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(XMLUtils.class);
+ private static final Logger LOG = LoggerFactory.getLogger(XMLUtils.class);
private static XMLParser xmlParserImpl =
AccessController.doPrivileged(
@@ -67,7 +74,7 @@ public final class XMLUtils {
return (XMLParser) JavaUtils.newInstanceWithEmptyConstructor(
ClassLoaderUtils.loadClass(xmlParserClass, XMLUtils.class));
} catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
- LOG.error("Error instantiating XMLParser. Falling back to XMLParserImpl");
+ LOG.error("Error instantiating XMLParser. Falling back to XMLParserImpl", e);
}
}
return new XMLParserImpl();
@@ -142,18 +149,17 @@ public final class XMLUtils {
* @param rootNode
* @param result
* @param exclude
- * @param com whether comments or not
+ * @param comments whether comments or not
*/
- public static void getSet(Node rootNode, Set<Node> result, Node exclude, boolean com) {
+ public static void getSet(Node rootNode, Set<Node> result, Node exclude, boolean comments) {
if (exclude != null && isDescendantOrSelf(exclude, rootNode)) {
return;
}
- getSetRec(rootNode, result, exclude, com);
+ getSetRec(rootNode, result, exclude, comments);
}
- @SuppressWarnings("fallthrough")
private static void getSetRec(final Node rootNode, final Set<Node> result,
- final Node exclude, final boolean com) {
+ final Node exclude, final boolean comments) {
if (rootNode == exclude) {
return;
}
@@ -180,11 +186,11 @@ public final class XMLUtils {
return;
}
}
- getSetRec(r, result, exclude, com);
+ getSetRec(r, result, exclude, comments);
}
break;
case Node.COMMENT_NODE:
- if (com) {
+ if (comments) {
result.add(rootNode);
}
break;
@@ -195,6 +201,18 @@ public final class XMLUtils {
}
}
+ /**
+ * Outputs a DOM tree to a {@link File}.
+ *
+ * @param contextNode root node of the DOM tree
+ * @param outputFile the file to write to
+ * @throws IOException
+ */
+ public static void outputDOM(Node contextNode, File outputFile) throws IOException {
+ try (OutputStream os = new BufferedOutputStream(Files.newOutputStream(outputFile.toPath()), 8192)) {
+ outputDOM(contextNode, os, false);
+ }
+ }
/**
* Outputs a DOM tree to an {@link OutputStream}.
@@ -203,7 +221,7 @@ public final class XMLUtils {
* @param os the {@link OutputStream}
*/
public static void outputDOM(Node contextNode, OutputStream os) {
- XMLUtils.outputDOM(contextNode, os, false);
+ outputDOM(contextNode, os, false);
}
/**
@@ -218,13 +236,12 @@ public final class XMLUtils {
public static void outputDOM(Node contextNode, OutputStream os, boolean addPreamble) {
try {
if (addPreamble) {
- os.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".getBytes(java.nio.charset.StandardCharsets.UTF_8));
+ os.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".getBytes(UTF_8));
}
-
Canonicalizer.getInstance(
Canonicalizer.ALGO_ID_C14N_PHYSICAL).canonicalizeSubtree(contextNode, os);
} catch (IOException | InvalidCanonicalizerException | CanonicalizationException ex) {
- LOG.debug(ex.getMessage(), ex);
+ LOG.error(ex.getMessage(), ex);
}
}
@@ -246,7 +263,7 @@ public final class XMLUtils {
Canonicalizer.getInstance(
Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS).canonicalizeSubtree(contextNode, os);
} catch (InvalidCanonicalizerException | CanonicalizationException ex) {
- LOG.debug(ex.getMessage(), ex);
+ LOG.error(ex.getMessage(), ex);
// throw new RuntimeException(ex.getMessage());
}
}
@@ -855,7 +872,7 @@ public final class XMLUtils {
// Continue searching to find duplicates
foundElement = attr.getOwnerElement();
} else {
- LOG.debug("Multiple elements with the same 'Id' attribute value!");
+ LOG.warn("Multiple elements with the same 'Id' attribute value!");
return false;
}
}
@@ -915,7 +932,7 @@ public final class XMLUtils {
for (int i = 0; i < length; i++) {
Attr attr = (Attr)attributes.item(i);
if (attr.isId() && id.equals(attr.getValue()) && se != knownElement) {
- LOG.debug("Multiple elements with the same 'Id' attribute value!");
+ LOG.warn("Multiple elements with the same 'Id' attribute value!");
return false;
}
}
@@ -945,6 +962,49 @@ public final class XMLUtils {
return true;
}
+ /**
+ * Reads a document from the input stream.
+ *
+ * @param file
+ * @param disallowDocTypeDeclarations
+ * @return {@link Document}
+ * @throws XMLParserException
+ * @throws IOException
+ */
+ public static Document read(File file, boolean disallowDocTypeDeclarations) throws XMLParserException, IOException {
+ try (InputStream inputStream = new BufferedInputStream(Files.newInputStream(file.toPath()), 8192)) {
+ return read(inputStream, disallowDocTypeDeclarations);
+ }
+ }
+
+ /**
+ * Reads a document from the input stream and closes it.
+ *
+ * @param name - resource name to be opened by the class loader
+ * @param loader
+ * @param disallowDocTypeDeclarations
+ * @return {@link Document}
+ * @throws XMLParserException
+ * @throws IOException inputStream.close() failed.
+ */
+ public static Document readResource(String name, ClassLoader loader, boolean disallowDocTypeDeclarations)
+ throws XMLParserException, IOException {
+ // Delegate to XMLParser implementation
+ try (InputStream inputStream = loader.getResourceAsStream(name)) {
+ return read(inputStream, disallowDocTypeDeclarations);
+ }
+
+ }
+
+ /**
+ * Reads a document from the input stream.
+ * Caller is responsible for closing the stream.
+ *
+ * @param inputStream
+ * @param disallowDocTypeDeclarations
+ * @return {@link Document}
+ * @throws XMLParserException
+ */
public static Document read(InputStream inputStream, boolean disallowDocTypeDeclarations) throws XMLParserException {
// Delegate to XMLParser implementation
return xmlParserImpl.parse(inputStream, disallowDocTypeDeclarations);
diff --git a/src/test/java/javax/xml/crypto/test/dsig/ClassLoaderTest.java b/src/test/java/javax/xml/crypto/test/dsig/ClassLoaderTest.java
deleted file mode 100644
index f45c8b04..00000000
--- a/src/test/java/javax/xml/crypto/test/dsig/ClassLoaderTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package javax.xml.crypto.test.dsig;
-
-import java.lang.reflect.Method;
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.security.AccessController;
-import java.security.Provider;
-import java.security.Security;
-
-import javax.xml.crypto.dsig.CanonicalizationMethod;
-import org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI;
-
-/**
- * This test uses more than one classloader to load a class (Driver) that
- * invokes the XMLSignature API. It tests that there are not provider class
- * loading issues with more than one classloader (see 6380953).
- */
-public class ClassLoaderTest {
-
- private static final org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(ClassLoaderTest.class);
-
- @SuppressWarnings("resource")
- @org.junit.jupiter.api.Test
- public void testMultipleLoaders() throws Exception {
-
- String baseDir = System.getProperty("basedir");
- String fs = System.getProperty("file.separator");
- File file0 = new File(baseDir + fs + "build" + fs + "classes" + fs);
- File file1 = new File(baseDir + fs + "build" + fs + "test" + fs);
- URL[] urls = new URL[2];
- urls[0] = file0.toURI().toURL();
- urls[1] = file1.toURI().toURL();
- URLClassLoader uc1 = new URLClassLoader
- (urls, Thread.currentThread().getContextClassLoader());
- URLClassLoader uc2 = new URLClassLoader
- (urls, Thread.currentThread().getContextClassLoader());
-
- Class<?> c1 = uc1.loadClass("javax.xml.crypto.test.dsig.Driver");
- Class<?> c2 = uc2.loadClass("javax.xml.crypto.test.dsig.Driver");
- Object o1 = c1.newInstance();
- Object o2 = c2.newInstance();
- Method m1 = c1.getMethod("dsig", (Class[]) null);
- Method m2 = c2.getMethod("dsig", (Class[]) null);
- m1.invoke(o1, (Object[]) null);
- m2.invoke(o2, (Object[]) null);
- }
-
- @SuppressWarnings("resource")
- @org.junit.jupiter.api.Test
- public void testProviderMultipleLoaders() throws Exception {
- String baseDir = System.getProperty("basedir");
- String fs = System.getProperty("file.separator");
- File file0 = new File(baseDir + fs + "build" + fs + "classes" + fs);
- File file1 = new File(baseDir + fs + "build" + fs + "test" + fs);
- URL[] urls = new URL[2];
- urls[0] = file0.toURI().toURL();
- urls[1] = file1.toURI().toURL();
-
- URLClassLoader uc1 = new URLClassLoader
- (urls, Thread.currentThread().getContextClassLoader());
- //load security provider using current class loader
- final Provider provider = new XMLDSigRI();
- AccessController.doPrivileged((java.security.PrivilegedAction<Object>)
- () -> Security.addProvider(provider));
- // get the provider from java.security.Security using URLClassLoader.
- // Need to use introspection to invoke methods to avoid using the
- // current class loader
- String factoryName = "javax.xml.crypto.dsig.XMLSignatureFactory";
- Class<?> factoryClass = uc1.loadClass(factoryName);
- Method factoryMethod = factoryClass.getDeclaredMethod
- ("getInstance", new Class[]{String.class});
- Class<?> methodParameterClass = uc1.loadClass
- ("javax.xml.crypto.dsig.spec.C14NMethodParameterSpec");
- Method canonicalizationMethod = factoryClass.getDeclaredMethod
- ("newCanonicalizationMethod",
- new Class[]{String.class, methodParameterClass});
- Object factory = factoryMethod.invoke(null, "DOM");
- long start = System.currentTimeMillis();
- for (int i = 0; i < 100; i++) {
- canonicalizationMethod.invoke
- (factory, new Object[]{CanonicalizationMethod.EXCLUSIVE, null});
- }
- long end = System.currentTimeMillis();
- long elapsed = end-start;
- LOG.debug("Elapsed: {}", elapsed);
- }
-
- @SuppressWarnings("resource")
- @org.junit.jupiter.api.Test
- public void testProviderMultipleLoadersTwo() throws Exception {
-
- String baseDir = System.getProperty("basedir");
- String fs = System.getProperty("file.separator");
- File file0 = new File(baseDir + fs + "build" + fs + "classes" + fs);
- File file1 = new File(baseDir + fs + "build" + fs + "test" + fs);
- URL[] urls = new URL[2];
- urls[0] = file0.toURI().toURL();
- urls[1] = file1.toURI().toURL();
- URLClassLoader uc1 = new URLClassLoader
- (urls, Thread.currentThread().getContextClassLoader());
- URLClassLoader uc2 = new URLClassLoader
- (urls, Thread.currentThread().getContextClassLoader());
-
- Class<?> c1 = uc1.loadClass("javax.xml.crypto.test.dsig.AppA");
- Class<?> c2 = uc2.loadClass("javax.xml.crypto.test.dsig.AppB");
- Object o1 = c1.newInstance();
- Object o2 = c2.newInstance();
- Method m1 = c1.getMethod("dsig", (Class[]) null);
- Method m2 = c2.getMethod("dsig", (Class[]) null);
- m1.invoke(o1, (Object[]) null);
- m2.invoke(o2, (Object[]) null);
- }
-
-}
diff --git a/src/test/java/org/apache/xml/security/test/XmlSecTestEnvironment.java b/src/test/java/org/apache/xml/security/test/XmlSecTestEnvironment.java
new file mode 100644
index 00000000..e50583b3
--- /dev/null
+++ b/src/test/java/org/apache/xml/security/test/XmlSecTestEnvironment.java
@@ -0,0 +1,123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.xml.security.test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+
+/**
+ * This class keeps order in files used by tests.
+ * Its purpose is to locate files by specifying relative paths to maven basedir.
+ */
+public final class XmlSecTestEnvironment {
+
+ /** Password to the {@link KeyStore} returned by {@link #getTestKeyStore()} */
+ public static final String TEST_KS_PASSWORD = "changeit";
+
+ private static final Path BASEDIR = Paths.get(System.getProperty("basedir", ".")).toAbsolutePath();
+
+ private XmlSecTestEnvironment() {
+ // hidden
+ }
+
+
+ /**
+ * @return {@link KeyStore} loaded from test.jks
+ * @throws GeneralSecurityException
+ * @throws IOException
+ */
+ public static KeyStore getTestKeyStore() throws GeneralSecurityException, IOException {
+ KeyStore ks = KeyStore.getInstance("JKS");
+ try (FileInputStream fis = new FileInputStream(resolveFile("src/test/resources/test.jks"))) {
+ ks.load(fis, TEST_KS_PASSWORD.toCharArray());
+ }
+ return ks;
+ }
+
+
+ /**
+ * Resolves the absolute path and returns the {@link File}.
+ * The file may not exist.
+ *
+ * @param relativePath
+ * @return absolute {@link File} path
+ */
+ public static File resolveFile(Path relativePath) {
+ return BASEDIR.resolve(relativePath).toFile();
+ }
+
+
+ /**
+ * Resolves the absolute path and returns the {@link File}.
+ * The file may not exist.
+ *
+ * @param first first element relative to the base dir
+ * @param more other path elements
+ * @return absolute {@link File} path
+ */
+ public static File resolveFile(String first, String... more) {
+ return resolveFile(BASEDIR, first, more);
+ }
+
+
+ /**
+ * Resolves the absolute path and returns the {@link File}.
+ * The file may not exist.
+ *
+ * @param base orientation point to be used for resolving the path
+ * @param first first element relative to the base dir
+ * @param more other path elements
+ * @return absolute {@link File} path
+ */
+ public static File resolveFile(Path base, String first, String... more) {
+ return resolvePath(base, first, more).toFile();
+ }
+
+
+ /**
+ * Resolves the absolute path and returns the {@link File}.
+ * The file may not exist.
+ *
+ * @param first first element relative to the base dir
+ * @param more other path elements
+ * @return absolute {@link Path}
+ */
+ public static Path resolvePath(String first, String... more) {
+ return resolvePath(BASEDIR, first, more);
+ }
+
+
+ /**
+ * Resolves the absolute path and returns the {@link File}.
+ * The file may not exist.
+ *
+ * @param base orientation point to be used for resolving the path
+ * @param first first element relative to the base dir
+ * @param more other path elements
+ * @return absolute {@link Path}
+ */
+ public static Path resolvePath(Path base, String first, String... more) {
+ return base.resolve(Paths.get(first, more)).toAbsolutePath();
+ }
+ }
diff --git a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Bug45961Test.java b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Bug45961Test.java
index 469ca11a..3e8439a3 100644
--- a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Bug45961Test.java
+++ b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Bug45961Test.java
@@ -30,6 +30,7 @@ import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.ObjectContainer;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.utils.Constants;
@@ -46,7 +47,7 @@ public class Bug45961Test {
private static final String OBJECT_ID = "Object";
private static final String MOCK_CANONICALIZATION_METHOD =
MockCanonicalizationMethod.MOCK_CANONICALIZATION_METHOD;
- private static final char[] PASSWORD = "changeit".toCharArray();
+ private static final char[] PASSWORD = XmlSecTestEnvironment.TEST_KS_PASSWORD.toCharArray();
private static final String ALIAS = "mullan";
private ObjectContainer object;
@@ -74,11 +75,7 @@ public class Bug45961Test {
}
private Document getSignedDocument() throws Exception {
- KeyStore ks = KeyStore.getInstance("JKS");
- FileInputStream fis =
- new FileInputStream(getAbsolutePath("src/test/resources/test.jks"));
- ks.load(fis, PASSWORD);
- fis.close();
+ KeyStore ks = XmlSecTestEnvironment.getTestKeyStore();
PrivateKey privateKey = (PrivateKey) ks.getKey(ALIAS, PASSWORD);
X509Certificate signingCert = (X509Certificate) ks
.getCertificate(ALIAS);
@@ -116,13 +113,4 @@ public class Bug45961Test {
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
return transforms;
}
-
- private String getAbsolutePath(String path) {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- path = basedir + "/" + path;
- }
- return path;
- }
-
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer11Test.java b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer11Test.java
index 50c8f903..960235bf 100644
--- a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer11Test.java
+++ b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer11Test.java
@@ -22,6 +22,8 @@ package org.apache.xml.security.test.dom.c14n.implementations;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
@@ -32,11 +34,12 @@ import javax.xml.xpath.XPathFactory;
import org.apache.xml.security.c14n.Canonicalizer;
import org.apache.xml.security.test.dom.DSNamespaceContext;
-import org.apache.xml.security.utils.JavaUtils;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -54,14 +57,10 @@ public class Canonicalizer11Test {
}
/** Field prefix */
- private String prefix;
+ private final Path prefix;
public Canonicalizer11Test() {
- prefix = "src/test/resources/org/apache/xml/security/c14n/";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- prefix = basedir + "/" + prefix;
- }
+ prefix = resolvePath("src", "test", "resources", "org", "apache", "xml", "security", "c14n");
}
/**
@@ -72,9 +71,9 @@ public class Canonicalizer11Test {
String descri =
"3.1: PIs, Comments, and Outside of Document Element. (commented)";
- String fileIn = prefix + "in/31_input.xml";
- String fileRef = prefix + "in/31_c14n-comments.xml";
- String fileOut = prefix + "out/xpath_31_output-comments.xml";
+ String fileIn = resolvePath(prefix, "in", "31_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "31_c14n-comments.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_31_output-comments.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_WITH_COMMENTS;
String xpath = null;
@@ -89,9 +88,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test32subtree() throws Exception {
String descri = "3.2 Whitespace in Document Content. (uncommented)";
- String fileIn = prefix + "in/32_input.xml";
- String fileRef = prefix + "in/32_c14n.xml";
- String fileOut = prefix + "out/xpath_32_output.xml";
+ String fileIn = resolvePath(prefix, "in", "32_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "32_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_32_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
String xpath = null;
@@ -106,9 +105,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test33subtree() throws Exception {
String descri = "3.3 Start and End Tags. (uncommented)";
- String fileIn = prefix + "in/33_input.xml";
- String fileRef = prefix + "in/33_c14n.xml";
- String fileOut = prefix + "out/xpath_33_output.xml";
+ String fileIn = resolvePath(prefix, "in", "33_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "33_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_33_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
String xpath = null; // Canonicalizer.XPATH_C14N_OMIT_COMMENTS_SINGLE_NODE;
@@ -125,9 +124,9 @@ public class Canonicalizer11Test {
public void test34() throws Exception {
String descri =
"3.4 Character Modifications and Character References. (uncommented)";
- String fileIn = prefix + "in/34_input.xml";
- String fileRef = prefix + "in/34_c14n.xml";
- String fileOut = prefix + "out/xpath_34_output.xml";
+ String fileIn = resolvePath(prefix, "in", "34_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "34_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_34_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
String xpath = null;
@@ -142,9 +141,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test35subtree() throws Exception {
String descri = "3.5 Entity References. (uncommented)";
- String fileIn = prefix + "in/35_input.xml";
- String fileRef = prefix + "in/35_c14n.xml";
- String fileOut = prefix + "out/xpath_35_output.xml";
+ String fileIn = resolvePath(prefix, "in", "35_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "35_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_35_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
String xpath = null;
@@ -159,9 +158,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test36subtree() throws Exception {
String descri = "3.6 UTF-8 Encoding. (uncommented)";
- String fileIn = prefix + "in/36_input.xml";
- String fileRef = prefix + "in/36_c14n.xml";
- String fileOut = prefix + "out/xpath_36_output.xml";
+ String fileIn = resolvePath(prefix, "in", "36_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "36_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_36_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
String xpath = null;
@@ -176,9 +175,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test37() throws Exception {
String descri = "3.7 Document Subsets. (uncommented)";
- String fileIn = prefix + "in/37_input.xml";
- String fileRef = prefix + "in/37_c14n.xml";
- String fileOut = prefix + "out/xpath_37_output.xml";
+ String fileIn = resolvePath(prefix, "in", "37_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "37_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_37_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
Map<String, String> namespace = new HashMap<>();
@@ -200,9 +199,9 @@ public class Canonicalizer11Test {
@org.junit.jupiter.api.Test
public void test38() throws Exception {
String descri = "3.8 Document Subsets and XML Attributes (uncommented)";
- String fileIn = prefix + "in/38_input.xml";
- String fileRef = prefix + "in/38_c14n.xml";
- String fileOut = prefix + "out/xpath_38_output.xml";
+ String fileIn = resolvePath(prefix, "in", "38_input.xml").toString();
+ Path fileRef = resolvePath(prefix, "in", "38_c14n.xml");
+ File fileOut = resolveFile(prefix, "out", "xpath_38_output.xml");
String c14nURI = Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS;
Map<String, String> namespace = new HashMap<>();
@@ -220,8 +219,8 @@ public class Canonicalizer11Test {
private boolean c14nAndCompare(
String fileIn,
- String fileRef,
- String fileOut,
+ Path fileRef,
+ File fileOut,
String c14nURI,
String xpath
) throws Exception {
@@ -232,8 +231,8 @@ public class Canonicalizer11Test {
private boolean c14nAndCompare(
String fileIn,
- String fileRef,
- String fileOut,
+ Path fileRef,
+ File fileOut,
String c14nURI,
String xpath,
Map<String, String> namespaces
@@ -268,24 +267,22 @@ public class Canonicalizer11Test {
// org.xml.sax.InputSource refIs = resolver.resolveEntity(null, fileRef);
// byte[] refBytes = JavaUtils.getBytesFromStream(refIs.getByteStream());
- byte[] refBytes = JavaUtils.getBytesFromFile(fileRef);
+ byte[] refBytes = Files.readAllBytes(fileRef);
// if everything is OK, result is true; we do a binary compare, byte by byte
boolean result = java.security.MessageDigest.isEqual(refBytes, c14nBytes);
if (!result) {
- File f = new File(fileOut);
- if (!f.exists()) {
- File parent = new File(f.getParent());
+ if (!fileOut.exists()) {
+ File parent = new File(fileOut.getParent());
parent.mkdirs();
- f.createNewFile();
+ fileOut.createNewFile();
+ }
+ try (FileOutputStream fos = new FileOutputStream(fileOut)) {
+ fos.write(c14nBytes);
+ LOG.debug("Wrote erroneous result to file " + fileOut.toURI().toURL().toString());
+ assertEquals(new String(refBytes), new String(c14nBytes));
}
- FileOutputStream fos = new FileOutputStream(f);
-
- fos.write(c14nBytes);
- LOG.debug("Wrote erroneous result to file " + f.toURI().toURL().toString());
- assertEquals(new String(refBytes), new String(c14nBytes));
- fos.close();
}
return result;
diff --git a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315ExclusiveTest.java b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315ExclusiveTest.java
index 08781aec..1a885a6e 100644
--- a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315ExclusiveTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315ExclusiveTest.java
@@ -24,6 +24,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.HashSet;
import java.util.Set;
@@ -50,6 +51,8 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -74,13 +77,13 @@ public class Canonicalizer20010315ExclusiveTest {
@org.junit.jupiter.api.Test
public void testA() throws Exception {
- File fileIn = new File(getAbsolutePath(
- "src/test/resources/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml"));
+ File fileIn = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml");
// File fileIn = new File("signature.xml");
assertTrue(fileIn.exists(), "file exists");
- Document doc = XMLUtils.read(new FileInputStream(fileIn), false);
+ Document doc = XMLUtils.read(fileIn, false);
Element signatureElement =
(Element) doc.getElementsByTagNameNS(
Constants.SignatureSpecNS, Constants._TAG_SIGNATURE).item(0);
@@ -109,16 +112,12 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test221() throws Exception {
-
- Document doc =
- XMLUtils.read(
- new FileInputStream(getAbsolutePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1.xml")),
- false
- );
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1.xml"), false);
Node root = doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315 c = new Canonicalizer20010315WithComments();
- byte[] reference = JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml"));
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -132,14 +131,12 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test222() throws Exception {
- Document doc =
- XMLUtils.read(new FileInputStream(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2.xml")
- ), false);
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2.xml"), false);
Node root = doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315 c = new Canonicalizer20010315WithComments();
- byte[] reference = JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml"));
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -153,14 +150,12 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test221excl() throws Exception {
- Document doc =
- XMLUtils.read(new FileInputStream(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1.xml")),
- false);
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_1.xml"), false);
Node root = doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments();
- byte[] reference = JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml"));
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -174,14 +169,12 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test222excl() throws Exception {
- Document doc =
- XMLUtils.read(new FileInputStream(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2.xml")),
- false);
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_2.xml"), false);
Node root = doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments();
- byte[] reference = JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml") );
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -197,10 +190,8 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test223excl() throws Exception {
- Document doc =
- XMLUtils.read(new FileInputStream(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_3.xml")),
- false);
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_3.xml"), false);
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
@@ -211,10 +202,8 @@ public class Canonicalizer20010315ExclusiveTest {
(NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);
Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments();
- byte[] reference = JavaUtils.getBytesFromFile(
- getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_3_c14nized_exclusive.xml")
- );
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_2_3_c14nized_exclusive.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeXPathNodeSet(XMLUtils.convertNodelistToSet(nodes), writer);
assertEquals(new String(reference), new String(writer.toByteArray()));
@@ -272,17 +261,13 @@ public class Canonicalizer20010315ExclusiveTest {
*/
@org.junit.jupiter.api.Test
public void test24excl() throws Exception {
- Document doc =
- XMLUtils.read(
- new FileInputStream(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4.xml")),
- false);
+ Document doc = XMLUtils
+ .read(resolveFile("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4.xml"), false);
Node root =
doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments();
- byte[] reference =
- JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4_c14nized.xml"));
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4_c14nized.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -310,9 +295,8 @@ public class Canonicalizer20010315ExclusiveTest {
Node root = doc.getElementsByTagNameNS("http://example.net", "elem2").item(0);
Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments();
- byte[] reference =
- JavaUtils.getBytesFromFile(getAbsolutePath(
- "src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4_c14nized.xml"));
+ byte[] reference = Files.readAllBytes(
+ resolvePath("src/test/resources/org/apache/xml/security/c14n/inExcl/example2_4_c14nized.xml"));
try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
c.engineCanonicalizeSubTree(root, writer);
boolean equals = java.security.MessageDigest.isEqual(reference, writer.toByteArray());
@@ -733,13 +717,4 @@ public class Canonicalizer20010315ExclusiveTest {
assertEquals(c14nXML, new String(writer.toByteArray()));
}
}
-
- private String getAbsolutePath(String path) {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- path = basedir + "/" + path;
- }
- return path;
- }
-
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315Test.java b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315Test.java
index dcee8f38..6b6a63b9 100644
--- a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315Test.java
+++ b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/Canonicalizer20010315Test.java
@@ -25,6 +25,8 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
@@ -40,12 +42,14 @@ import javax.xml.xpath.XPathFactory;
import org.apache.xml.security.c14n.CanonicalizationException;
import org.apache.xml.security.c14n.Canonicalizer;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.utils.JavaUtils;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -65,14 +69,10 @@ public class Canonicalizer20010315Test {
}
/** Field prefix */
- private String prefix;
+ private final String prefix;
public Canonicalizer20010315Test() {
- prefix = "src/test/resources/org/apache/xml/security/c14n/";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- prefix = basedir + "/" + prefix;
- }
+ prefix = resolvePath("src", "test", "resources", "org", "apache", "xml", "security", "c14n") + "/";
}
/**
@@ -84,7 +84,7 @@ public class Canonicalizer20010315Test {
"3.1: PIs, Comments, and Outside of Document Element. (commented)";
String fileIn = prefix + "in/31_input.xml";
- String fileRef = prefix + "in/31_c14n-comments.xml";
+ Path fileRef = resolvePath(prefix, "in", "31_c14n-comments.xml");
String fileOut = prefix + "out/xpath_31_output-comments.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS;
String xpath = null;
@@ -101,7 +101,7 @@ public class Canonicalizer20010315Test {
"3.1: PIs, Comments, and Outside of Document Element. (commented)";
String fileIn = prefix + "in/31_input.xml";
- String fileRef = prefix + "in/31_c14n-comments.xml";
+ Path fileRef = resolvePath(prefix, "in", "31_c14n-comments.xml");
String fileOut = prefix + "out/xpath_31_output-comments.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -119,7 +119,7 @@ public class Canonicalizer20010315Test {
String descri =
"3.1: PIs, Comments, and Outside of Document Element. (uncommented)";
String fileIn = prefix + "in/31_input.xml";
- String fileRef = prefix + "in/31_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "31_c14n.xml");
String fileOut = prefix + "out/xpath_31_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -138,7 +138,7 @@ public class Canonicalizer20010315Test {
String descri =
"3.1: PIs, Comments, and Outside of Document Element. (uncommented)";
String fileIn = prefix + "in/31_input.xml";
- String fileRef = prefix + "in/31_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "31_c14n.xml");
String fileOut = prefix + "out/xpath_31_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -155,7 +155,7 @@ public class Canonicalizer20010315Test {
public void test32subtree() throws Exception {
String descri = "3.2 Whitespace in Document Content. (uncommented)";
String fileIn = prefix + "in/32_input.xml";
- String fileRef = prefix + "in/32_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "32_c14n.xml");
String fileOut = prefix + "out/xpath_32_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -172,7 +172,7 @@ public class Canonicalizer20010315Test {
public void test32subset() throws Exception {
String descri = "3.2 Whitespace in Document Content. (uncommented)";
String fileIn = prefix + "in/32_input.xml";
- String fileRef = prefix + "in/32_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "32_c14n.xml");
String fileOut = prefix + "out/xpath_32_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -189,7 +189,7 @@ public class Canonicalizer20010315Test {
public void test33subtree() throws Exception {
String descri = "3.3 Start and End Tags. (uncommented)";
String fileIn = prefix + "in/33_input.xml";
- String fileRef = prefix + "in/33_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "33_c14n.xml");
String fileOut = prefix + "out/xpath_33_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null; // Canonicalizer.XPATH_C14N_OMIT_COMMENTS_SINGLE_NODE;
@@ -201,7 +201,7 @@ public class Canonicalizer20010315Test {
public void test33subset() throws Exception {
String descri = "3.3 Start and End Tags. (uncommented)";
String fileIn = prefix + "in/33_input.xml";
- String fileRef = prefix + "in/33_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "33_c14n.xml");
String fileOut = prefix + "out/xpath_33_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -220,7 +220,7 @@ public class Canonicalizer20010315Test {
String descri =
"3.4 Character Modifications and Character References. (uncommented)";
String fileIn = prefix + "in/34_input.xml";
- String fileRef = prefix + "in/34_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "34_c14n.xml");
String fileOut = prefix + "out/xpath_34_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -246,7 +246,7 @@ public class Canonicalizer20010315Test {
String descri =
"3.4 Character Modifications and Character References. (uncommented, patched to run on validating Parsers)";
String fileIn = prefix + "in/34_input_validatingParser.xml";
- String fileRef = prefix + "in/34_c14n_validatingParser.xml";
+ Path fileRef = resolvePath(prefix, "in", "34_c14n_validatingParser.xml");
String fileOut = prefix + "out/xpath_34_output_validatingParser.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -273,7 +273,7 @@ public class Canonicalizer20010315Test {
String descri =
"3.4 Character Modifications and Character References. (uncommented, patched to run on validating Parsers)";
String fileIn = prefix + "in/34_input_validatingParser.xml";
- String fileRef = prefix + "in/34_c14n_validatingParser.xml";
+ Path fileRef = resolvePath(prefix, "in", "34_c14n_validatingParser.xml");
String fileOut = prefix + "out/xpath_34_output_validatingParser.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -290,7 +290,7 @@ public class Canonicalizer20010315Test {
public void test35subtree() throws Exception{
String descri = "3.5 Entity References. (uncommented)";
String fileIn = prefix + "in/35_input.xml";
- String fileRef = prefix + "in/35_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "35_c14n.xml");
String fileOut = prefix + "out/xpath_35_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -307,7 +307,7 @@ public class Canonicalizer20010315Test {
public void test35subset() throws Exception {
String descri = "3.5 Entity References. (uncommented)";
String fileIn = prefix + "in/35_input.xml";
- String fileRef = prefix + "in/35_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "35_c14n.xml");
String fileOut = prefix + "out/xpath_35_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -324,7 +324,7 @@ public class Canonicalizer20010315Test {
public void test36subtree() throws Exception {
String descri = "3.6 UTF-8 Encoding. (uncommented)";
String fileIn = prefix + "in/36_input.xml";
- String fileRef = prefix + "in/36_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "36_c14n.xml");
String fileOut = prefix + "out/xpath_36_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = null;
@@ -341,7 +341,7 @@ public class Canonicalizer20010315Test {
public void test36subset() throws Exception {
String descri = "3.6 UTF-8 Encoding. (uncommented)";
String fileIn = prefix + "in/36_input.xml";
- String fileRef = prefix + "in/36_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "36_c14n.xml");
String fileOut = prefix + "out/xpath_36_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE;
@@ -358,7 +358,7 @@ public class Canonicalizer20010315Test {
public void test37() throws Exception {
String descri = "3.7 Document Subsets. (uncommented)";
String fileIn = prefix + "in/37_input.xml";
- String fileRef = prefix + "in/37_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "37_c14n.xml");
String fileOut = prefix + "out/xpath_37_output.xml";
String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
@@ -385,7 +385,7 @@ public class Canonicalizer20010315Test {
//String descri = "3.7 Document Subsets. (uncommented), c14n by NodeList";
String fileIn = prefix + "in/37_input.xml";
- String fileRef = prefix + "in/37_c14n.xml";
+ Path fileRef = resolvePath(prefix, "in", "37_c14n.xml");
//String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS;
Document doc = XMLUtils.read(new FileInputStream(fileIn), false);
@@ -402,8 +402,7 @@ public class Canonicalizer20010315Test {
XPathFactory xpf = XPathFactory.newInstance();
XPath xPath = xpf.newXPath();
- DSNamespaceContext namespaceContext =
- new DSNamespaceContext(namespace);
+ DSNamespaceContext namespaceContext = new DSNamespaceContext(namespace);
xPath.setNamespaceContext(namespaceContext);
NodeList nodes = (NodeList)xPath.evaluate(xpath, doc, XPathConstants.NODESET);
@@ -411,8 +410,7 @@ public class Canonicalizer20010315Test {
Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS);
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
c14n.canonicalizeXPathNodeSet(XMLUtils.convertNodelistToSet(nodes), baos);
- InputStream refStream = new FileInputStream(fileRef);
- byte[] refBytes = JavaUtils.getBytesFromStream(refStream);
+ byte[] refBytes = Files.readAllBytes(fileRef);
assertEquals(new String(refBytes),new String(baos.toByteArray()));
}
}
@@ -684,7 +682,7 @@ public class Canonicalizer20010315Test {
private boolean c14nAndCompare(
String fileIn,
- String fileRef,
+ Path fileRef,
String fileOut,
String c14nURI,
String xpath
@@ -696,7 +694,7 @@ public class Canonicalizer20010315Test {
private boolean c14nAndCompare(
String fileIn,
- String fileRef,
+ Path fileRef,
String fileOut,
String c14nURI,
String xpath,
@@ -732,7 +730,7 @@ public class Canonicalizer20010315Test {
// org.xml.sax.InputSource refIs = resolver.resolveEntity(null, fileRef);
// byte[] refBytes = JavaUtils.getBytesFromStream(refIs.getByteStream());
- byte[] refBytes = JavaUtils.getBytesFromFile(fileRef);
+ byte[] refBytes = Files.readAllBytes(fileRef);
// if everything is OK, result is true; we do a binary compare, byte by byte
boolean result = java.security.MessageDigest.isEqual(refBytes, c14nBytes);
diff --git a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/ExclusiveC14NInteropTest.java b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/ExclusiveC14NInteropTest.java
index c8909656..ad3bbc8c 100644
--- a/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/ExclusiveC14NInteropTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/c14n/implementations/ExclusiveC14NInteropTest.java
@@ -20,10 +20,10 @@ package org.apache.xml.security.test.dom.c14n.implementations;
import java.io.File;
-import java.io.FileInputStream;
import org.apache.xml.security.signature.Reference;
import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.interop.InteropTestBase;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
@@ -116,21 +116,13 @@ public class ExclusiveC14NInteropTest extends InteropTestBase {
}
private String t(String directory, String file, boolean secureValidation) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
-
- File f = new File(directory + "/" + file);
-
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ File f = XmlSecTestEnvironment.resolveFile(directory, file);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
- Element sigElement =
- (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNATURE).item(0);
+ Element sigElement = (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNATURE)
+ .item(0);
XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString(), secureValidation);
- boolean verify =
- signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
+ boolean verify = signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
LOG.debug(" signature.checkSignatureValue finished: " + verify);
@@ -160,12 +152,7 @@ public class ExclusiveC14NInteropTest extends InteropTestBase {
}
String r = sb.toString().trim();
-
- if (r.length() == 0) {
- return null;
- } else {
- return r;
- }
+ return r.isEmpty() ? null : r;
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/encryption/BaltimoreEncTest.java b/src/test/java/org/apache/xml/security/test/dom/encryption/BaltimoreEncTest.java
index 5aec3ade..6eeeb980 100644
--- a/src/test/java/org/apache/xml/security/test/dom/encryption/BaltimoreEncTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/encryption/BaltimoreEncTest.java
@@ -20,6 +20,8 @@ package org.apache.xml.security.test.dom.encryption;
import java.io.File;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.security.Key;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
@@ -55,6 +57,8 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
@@ -75,8 +79,8 @@ public class BaltimoreEncTest {
private static byte[] jedBytes;
private static PrivateKey rsaKey;
private boolean haveISOPadding;
- private boolean haveKeyWraps;
- private boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
+ private final boolean haveKeyWraps;
+ private final boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
static org.slf4j.Logger LOG =
org.slf4j.LoggerFactory.getLogger(BaltimoreEncTest.class);
@@ -86,15 +90,10 @@ public class BaltimoreEncTest {
*/
public BaltimoreEncTest() throws Exception {
// Create the comparison strings
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
+ File f = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmlenc-five",
+ "plaintext.xml");
- Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
+ Document doc = XMLUtils.read(f, false);
cardNumber = retrieveCCNumber(doc);
@@ -113,12 +112,9 @@ public class BaltimoreEncTest {
rsaCertSerialNumber = "1014918766910";
// rsaKey
- filename = "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
-
- byte[] pkcs8Bytes = JavaUtils.getBytesFromFile(filename);
+ Path filename = resolvePath("src", "test", "resources", "ie", "baltimore", "merlin-examples",
+ "merlin-xmlenc-five", "rsa.p8");
+ byte[] pkcs8Bytes = Files.readAllBytes(filename);
PKCS8EncodedKeySpec pkcs8Spec = new PKCS8EncodedKeySpec(pkcs8Bytes);
// Create a key factory
@@ -162,10 +158,10 @@ public class BaltimoreEncTest {
public void test_five_content_3des_cbc() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
checkDecryptedDoc(dd, true);
} else {
LOG.warn(
@@ -184,10 +180,10 @@ public class BaltimoreEncTest {
public void test_five_content_aes256_cbc() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
checkDecryptedDoc(dd, true);
} else {
LOG.warn(
@@ -206,10 +202,10 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_content_aes128_cbc_kw_aes192() throws Exception {
if (haveISOPadding && haveKeyWraps) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
checkDecryptedDoc(dd, true);
} else {
LOG.warn(
@@ -229,10 +225,10 @@ public class BaltimoreEncTest {
public void test_five_content_3des_cbc_kw_aes128() throws Exception {
if (haveISOPadding && haveKeyWraps) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
checkDecryptedDoc(dd, true);
} else {
LOG.warn(
@@ -251,10 +247,10 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_content_aes128_cbc_rsa_15() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
checkDecryptedDoc(dd, true);
} else {
LOG.warn(
@@ -273,10 +269,10 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_element_aes192_cbc_ref() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml";
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml");
- Document dd = decryptElement(filename);
+ Document dd = decryptElement(file);
// Note - we don't check the node count, as it will be different
// due to the encrypted text remainin in the reference nodes
checkDecryptedDoc(dd, false);
@@ -297,10 +293,8 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_data_aes128_cbc() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml";
-
- byte[] decrypt = decryptData(filename);
+ File file = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml");
+ byte[] decrypt = decryptData(file);
checkDecryptedData(decrypt);
} else {
LOG.warn(
@@ -321,10 +315,9 @@ public class BaltimoreEncTest {
assumeFalse(isIBMJdK);
if (haveISOPadding && haveKeyWraps) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml";
-
- byte[] decrypt = decryptData(filename);
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml");
+ byte[] decrypt = decryptData(file);
checkDecryptedData(decrypt);
} else {
LOG.warn(
@@ -343,10 +336,9 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_data_aes192_cbc_aes256() throws Exception {
if (haveISOPadding && haveKeyWraps) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml";
-
- byte[] decrypt = decryptData(filename);
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml");
+ byte[] decrypt = decryptData(file);
checkDecryptedData(decrypt);
} else {
LOG.warn(
@@ -365,10 +357,9 @@ public class BaltimoreEncTest {
@org.junit.jupiter.api.Test
public void test_five_data_3des_cbc_rsa_oaep() throws Exception {
if (haveISOPadding) {
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml";
-
- byte[] decrypt = decryptData(filename);
+ File file = resolveFile(
+ "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml");
+ byte[] decrypt = decryptData(file);
checkDecryptedData(decrypt);
} else {
LOG.warn(
@@ -386,24 +377,16 @@ public class BaltimoreEncTest {
*
* @param filename File to decrypt from
*/
- private Document decryptElement(String filename) throws Exception {
- XMLCipher cipher;
+ private Document decryptElement(File file) throws Exception {
// Parse the document in question
-
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
- Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
+ Document doc = XMLUtils.read(file, false);
// Now we have the document, lets build the XMLCipher element
Element ee = null;
// Create the XMLCipher element
- cipher = XMLCipher.getInstance();
+ XMLCipher cipher = XMLCipher.getInstance();
// Need to pre-load the Encrypted Data so we can get the key info
ee = (Element) doc.getElementsByTagName("EncryptedData").item(0);
@@ -425,18 +408,12 @@ public class BaltimoreEncTest {
*
* @param filename File to decrypt from
*/
- private byte[] decryptData(String filename) throws Exception {
+ private byte[] decryptData(File file) throws Exception {
XMLCipher cipher;
// Parse the document in question
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
- Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
+ Document doc = XMLUtils.read(new java.io.FileInputStream(file), false);
// Now we have the document, lets build the XMLCipher element
Element ee = null;
diff --git a/src/test/java/org/apache/xml/security/test/dom/encryption/XMLEncryption11Test.java b/src/test/java/org/apache/xml/security/test/dom/encryption/XMLEncryption11Test.java
index b0fb2ed5..5f310ada 100644
--- a/src/test/java/org/apache/xml/security/test/dom/encryption/XMLEncryption11Test.java
+++ b/src/test/java/org/apache/xml/security/test/dom/encryption/XMLEncryption11Test.java
@@ -48,11 +48,11 @@ import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.EncryptionConstants;
import org.apache.xml.security.utils.XMLUtils;
-// import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
@@ -72,7 +72,7 @@ public class XMLEncryption11Test {
private static String cardNumber;
private static int nodeCount = 0;
private boolean haveISOPadding;
- private boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
+ private final boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
static org.slf4j.Logger LOG =
org.slf4j.LoggerFactory.getLogger(XMLEncryption11Test.class);
@@ -83,14 +83,7 @@ public class XMLEncryption11Test {
public XMLEncryption11Test() throws Exception {
// Create the comparison strings
- String filename =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
cardNumber = retrieveCCNumber(doc);
@@ -104,8 +97,7 @@ public class XMLEncryption11Test {
// Check what algorithms are available
haveISOPadding = false;
- String algorithmId =
- JCEMapper.translateURItoJCEID(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128);
+ String algorithmId = JCEMapper.translateURItoJCEID(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128);
if (algorithmId != null) {
try {
@@ -126,13 +118,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA2048() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -142,11 +128,10 @@ public class XMLEncryption11Test {
keyStore.getEntry("importkey", new KeyStore.PasswordProtection("passwd".toCharArray()));
PrivateKey rsaKey = pkEntry.getPrivateKey();
- String filename =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
- + "cipherText__RSA-2048__aes128-gcm__rsa-oaep-mgf1p.xml";
+ File file = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
+ + "cipherText__RSA-2048__aes128-gcm__rsa-oaep-mgf1p.xml");
- Document dd = decryptElement(filename, rsaKey, (X509Certificate)cert);
+ Document dd = decryptElement(file, rsaKey, (X509Certificate)cert);
// XMLUtils.outputDOM(dd.getFirstChild(), System.out);
checkDecryptedDoc(dd, true);
} else {
@@ -166,13 +151,7 @@ public class XMLEncryption11Test {
assumeFalse(isIBMJdK);
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -183,11 +162,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
@@ -230,13 +205,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA2048EncryptDecryptWithSecureRandom() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-2048_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -247,12 +216,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
Key sessionKey = getSessionKey("http://www.w3.org/2009/xmlenc11#aes128-gcm");
@@ -295,13 +259,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA3072() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -311,10 +269,8 @@ public class XMLEncryption11Test {
keyStore.getEntry("importkey", new KeyStore.PasswordProtection("passwd".toCharArray()));
PrivateKey rsaKey = pkEntry.getPrivateKey();
- String filename =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
- + "cipherText__RSA-3072__aes192-gcm__rsa-oaep-mgf1p__Sha256.xml";
-
+ File filename = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
+ + "cipherText__RSA-3072__aes192-gcm__rsa-oaep-mgf1p__Sha256.xml");
Document dd = decryptElement(filename, rsaKey, (X509Certificate)cert);
// XMLUtils.outputDOM(dd.getFirstChild(), System.out);
checkDecryptedDoc(dd, true);
@@ -334,13 +290,8 @@ public class XMLEncryption11Test {
assumeFalse(isIBMJdK);
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile(
+ "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -351,12 +302,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
Key sessionKey = getSessionKey("http://www.w3.org/2009/xmlenc11#aes192-gcm");
@@ -398,13 +344,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA3072OAEP() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -414,10 +354,9 @@ public class XMLEncryption11Test {
keyStore.getEntry("importkey", new KeyStore.PasswordProtection("passwd".toCharArray()));
PrivateKey rsaKey = pkEntry.getPrivateKey();
- String filename =
+ File filename = resolveFile(
"src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
- + "cipherText__RSA-3072__aes256-gcm__rsa-oaep__Sha384-MGF_Sha1.xml";
-
+ + "cipherText__RSA-3072__aes256-gcm__rsa-oaep__Sha384-MGF_Sha1.xml");
Document dd = decryptElement(filename, rsaKey, (X509Certificate)cert);
// XMLUtils.outputDOM(dd.getFirstChild(), System.out);
checkDecryptedDoc(dd, true);
@@ -435,13 +374,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA3072OAEPEncryptDecrypt() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-3072_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -452,12 +385,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
Key sessionKey = getSessionKey("http://www.w3.org/2009/xmlenc11#aes256-gcm");
@@ -499,13 +427,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA4096() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -515,10 +437,9 @@ public class XMLEncryption11Test {
keyStore.getEntry("importkey", new KeyStore.PasswordProtection("passwd".toCharArray()));
PrivateKey rsaKey = pkEntry.getPrivateKey();
- String filename =
+ File filename = resolveFile(
"src/test/resources/org/w3c/www/interop/xmlenc-core-11/"
- + "cipherText__RSA-4096__aes256-gcm__rsa-oaep__Sha512-MGF_Sha1_PSource.xml";
-
+ + "cipherText__RSA-4096__aes256-gcm__rsa-oaep__Sha512-MGF_Sha1_PSource.xml");
Document dd = decryptElement(filename, rsaKey, (X509Certificate)cert);
// XMLUtils.outputDOM(dd.getFirstChild(), System.out);
checkDecryptedDoc(dd, true);
@@ -536,13 +457,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA4096EncryptDecrypt() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -553,12 +468,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
Key sessionKey = getSessionKey("http://www.w3.org/2009/xmlenc11#aes256-gcm");
@@ -597,13 +507,7 @@ public class XMLEncryption11Test {
@org.junit.jupiter.api.Test
public void testKeyWrappingRSA4096EncryptDecryptSHA224() throws Exception {
if (haveISOPadding) {
- String keystore =
- "src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- keystore = basedir + "/" + keystore;
- }
-
+ File keystore = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/RSA-4096_SHA256WithRSA.jks");
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new java.io.FileInputStream(keystore), "passwd".toCharArray());
@@ -614,12 +518,7 @@ public class XMLEncryption11Test {
PrivateKey rsaKey = pkEntry.getPrivateKey();
// Perform encryption
- String filename = "src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
+ File f = resolveFile("src/test/resources/org/w3c/www/interop/xmlenc-core-11/plaintext.xml");
Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
Key sessionKey = getSessionKey("http://www.w3.org/2009/xmlenc11#aes256-gcm");
@@ -664,16 +563,9 @@ public class XMLEncryption11Test {
* @param filename File to decrypt from
* @param key The Key to use for decryption
*/
- private Document decryptElement(String filename, Key rsaKey, X509Certificate rsaCert) throws Exception {
+ private Document decryptElement(File file, Key rsaKey, X509Certificate rsaCert) throws Exception {
// Parse the document in question
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
- Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
-
+ Document doc = XMLUtils.read(new java.io.FileInputStream(file), false);
return decryptElement(doc, rsaKey, rsaCert);
}
@@ -691,10 +583,7 @@ public class XMLEncryption11Test {
XMLCipher cipher = XMLCipher.getInstance();
// Need to pre-load the Encrypted Data so we can get the key info
- Element ee =
- (Element) doc.getElementsByTagNameNS(
- "http://www.w3.org/2001/04/xmlenc#", "EncryptedData"
- ).item(0);
+ Element ee = (Element) doc.getElementsByTagNameNS("http://www.w3.org/2001/04/xmlenc#", "EncryptedData").item(0);
cipher.init(XMLCipher.DECRYPT_MODE, null);
EncryptedData encryptedData = cipher.loadEncryptedData(doc, ee);
@@ -708,10 +597,7 @@ public class XMLEncryption11Test {
XMLCipher cipher2 = XMLCipher.getInstance();
cipher2.init(XMLCipher.UNWRAP_MODE, rsaKey);
- Key key =
- cipher2.decryptKey(
- encryptedKey, encryptedData.getEncryptionMethod().getAlgorithm()
- );
+ Key key = cipher2.decryptKey(encryptedKey, encryptedData.getEncryptionMethod().getAlgorithm());
cipher.init(XMLCipher.DECRYPT_MODE, key);
Document dd = cipher.doFinal(doc, ee);
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreTest.java b/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreTest.java
index 06647c70..bd19318f 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreTest.java
@@ -22,7 +22,9 @@ import org.apache.xml.security.signature.MissingResourceFailureException;
import org.apache.xml.security.test.dom.utils.resolver.OfflineResolver;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import java.io.File;
import java.nio.charset.StandardCharsets;
import org.apache.xml.security.signature.XMLSignatureException;
@@ -44,22 +46,15 @@ public class BaltimoreTest extends InteropTestBase {
org.slf4j.LoggerFactory.getLogger(BaltimoreTest.class);
/** Field merlinsDir15 */
- static String merlinsDir15 =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/";
- static String merlinsDir16 =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen";
- static String merlinsDir23 =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/";
+ static File merlinsDir15;
+ static File merlinsDir16;
+ static File merlinsDir23;
static {
System.setProperty("org.apache.xml.security.allowUnsafeResourceResolving", "true");
-
- String basedir = System.getProperty("basedir");
- if(basedir != null && basedir.length() != 0) {
- merlinsDir15 = basedir + "/" + merlinsDir15;
- merlinsDir16 = basedir + "/" + merlinsDir16;
- merlinsDir23 = basedir + "/" + merlinsDir23;
- }
+ merlinsDir15 = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmldsig-fifteen");
+ merlinsDir16 = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmldsig-sixteen");
+ merlinsDir23 = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmldsig-twenty-three");
org.apache.xml.security.Init.init();
}
@@ -78,7 +73,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloping_hmac_sha1() throws Exception {
- String filename = merlinsDir15 + "signature-enveloping-hmac-sha1.xml";
+ File filename = new File(merlinsDir15, "signature-enveloping-hmac-sha1.xml");
boolean verify = this.verifyHMAC(filename, new OfflineResolver(), false,
"secret".getBytes(StandardCharsets.US_ASCII));
@@ -86,7 +81,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -97,7 +92,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloping_hmac_sha1_40() throws Exception {
- String filename = merlinsDir15 + "signature-enveloping-hmac-sha1-40.xml";
+ File filename = new File(merlinsDir15, "signature-enveloping-hmac-sha1-40.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
byte[] hmacKey = "secret".getBytes(StandardCharsets.US_ASCII);
@@ -123,7 +118,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloped_dsa() throws Exception {
- String filename = merlinsDir15 + "signature-enveloped-dsa.xml";
+ File filename = new File(merlinsDir15, "signature-enveloped-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -139,7 +134,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -150,7 +145,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloping_b64_dsa() throws Exception {
- String filename = merlinsDir15 + "signature-enveloping-b64-dsa.xml";
+ File filename = new File(merlinsDir15, "signature-enveloping-b64-dsa.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -166,7 +161,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -177,7 +172,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloping_dsa() throws Exception {
- String filename = merlinsDir15 + "signature-enveloping-dsa.xml";
+ File filename = new File(merlinsDir15, "signature-enveloping-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -193,7 +188,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -204,7 +199,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_enveloping_rsa() throws Exception {
- String filename = merlinsDir15 + "signature-enveloping-rsa.xml";
+ File filename = new File(merlinsDir15, "signature-enveloping-rsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -220,7 +215,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -231,7 +226,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_external_b64_dsa() throws Exception {
- String filename = merlinsDir15 + "signature-external-b64-dsa.xml";
+ File filename = new File(merlinsDir15, "signature-external-b64-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -247,7 +242,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -258,7 +253,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_fifteen_external_dsa() throws Exception {
- String filename = merlinsDir15 + "signature-external-dsa.xml";
+ File filename = new File(merlinsDir15, "signature-external-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -274,7 +269,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -284,8 +279,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_sixteen_bad_signature() throws Exception {
- String filename =
- merlinsDir16 + "/bad-signature.xml";
+ File filename = new File(merlinsDir16, "bad-signature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
@@ -305,7 +299,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloping_hmac_sha1() throws Exception {
- String filename = merlinsDir23 + "signature-enveloping-hmac-sha1.xml";
+ File filename = new File(merlinsDir23, "signature-enveloping-hmac-sha1.xml");
boolean verify = this.verifyHMAC(filename, new OfflineResolver(), false,
"secret".getBytes(StandardCharsets.US_ASCII));
@@ -313,7 +307,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -324,7 +318,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloping_hmac_sha1_40() throws Exception {
- String filename = merlinsDir23 + "signature-enveloping-hmac-sha1-40.xml";
+ File filename = new File(merlinsDir23, "signature-enveloping-hmac-sha1-40.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
byte[] hmacKey = "secret".getBytes(StandardCharsets.US_ASCII);
@@ -350,7 +344,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloped_dsa() throws Exception {
- String filename = merlinsDir23 + "signature-enveloped-dsa.xml";
+ File filename = new File(merlinsDir23, "signature-enveloped-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -366,7 +360,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -377,7 +371,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloping_b64_dsa() throws Exception {
- String filename = merlinsDir23 + "signature-enveloping-b64-dsa.xml";
+ File filename = new File(merlinsDir23, "signature-enveloping-b64-dsa.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -393,7 +387,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -404,7 +398,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloping_dsa() throws Exception {
- String filename = merlinsDir23 + "signature-enveloping-dsa.xml";
+ File filename = new File(merlinsDir23, "signature-enveloping-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -420,7 +414,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -431,7 +425,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_enveloping_rsa() throws Exception {
- String filename = merlinsDir23 + "signature-enveloping-rsa.xml";
+ File filename = new File(merlinsDir23, "signature-enveloping-rsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -447,7 +441,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -458,7 +452,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_external_b64_dsa() throws Exception {
- String filename = merlinsDir23 + "signature-external-b64-dsa.xml";
+ File filename = new File(merlinsDir23, "signature-external-b64-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -474,7 +468,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -485,7 +479,7 @@ public class BaltimoreTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_external_dsa() throws Exception {
- String filename = merlinsDir23 + "signature-external-dsa.xml";
+ File filename = new File(merlinsDir23, "signature-external-dsa.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -501,7 +495,7 @@ public class BaltimoreTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreXalanTest.java b/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreXalanTest.java
index aa49754b..78d611d1 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreXalanTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/BaltimoreXalanTest.java
@@ -18,61 +18,50 @@
*/
package org.apache.xml.security.test.dom.interop;
+import java.io.File;
+
import org.apache.xml.security.test.dom.utils.resolver.OfflineResolver;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* This test is to ensure interoperability with the examples provided by Merlin Huges
* from Baltimore using KeyTools XML. These test vectors are located in the directory
- * <CODE>data/ie/baltimore/merlin-examples/</CODE>. These tests require Xalan for the here() function
+ * <CODE>ie/baltimore/merlin-examples/</CODE>. These tests require Xalan for the here() function
*
* @see <A HREF="http://www.baltimore.com/keytools/xml/index.html">The KeyTools XML Website</A>
*/
public class BaltimoreXalanTest extends InteropTestBase {
- private static final String CONFIG_FILE = "config-xalan.xml";
+ private static final String CONFIG_FILE = "/config-xalan.xml";
static org.slf4j.Logger LOG =
org.slf4j.LoggerFactory.getLogger(BaltimoreXalanTest.class);
- static String merlinsDir16 =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen";
- static String merlinsDir23 =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/";
-
- static {
- System.setProperty("org.apache.xml.security.allowUnsafeResourceResolving", "true");
-
- String basedir = System.getProperty("basedir");
- if(basedir != null && basedir.length() != 0) {
- merlinsDir16 = basedir + "/" + merlinsDir16;
- merlinsDir23 = basedir + "/" + merlinsDir23;
- }
- }
+ private static final File merlinsDir16 = resolveFile("src", "test", "resources", "ie", "baltimore",
+ "merlin-examples", "merlin-xmldsig-sixteen");
+ private static final File merlinsDir23 = resolveFile("src", "test", "resources", "ie", "baltimore",
+ "merlin-examples", "merlin-xmldsig-twenty-three");
@BeforeAll
public static void setup() {
+ System.setProperty("org.apache.xml.security.allowUnsafeResourceResolving", "true");
System.setProperty("org.apache.xml.security.resource.config", CONFIG_FILE);
+ org.apache.xml.security.Init.init();
}
@AfterAll
public static void cleanup() {
+ System.clearProperty("org.apache.xml.security.allowUnsafeResourceResolving");
System.clearProperty("org.apache.xml.security.resource.config");
}
- /**
- * Constructor BaltimoreTest
- */
- public BaltimoreXalanTest() {
- super();
- org.apache.xml.security.Init.init();
- }
-
/**
* Method test_sixteen_external_dsa
*
@@ -81,24 +70,23 @@ public class BaltimoreXalanTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_sixteen_external_dsa() throws Exception {
- String filename =
- merlinsDir16 + "/signature.xml";
+ File file = new File(merlinsDir16, "signature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
try {
- verify = this.verify(filename, resolver, followManifests);
+ verify = this.verify(file, resolver, followManifests);
} catch (RuntimeException ex) {
- LOG.error("Verification crashed for " + filename);
+ LOG.error("Verification crashed for " + file);
throw ex;
}
if (!verify) {
- LOG.error("Verification failed for " + filename);
+ LOG.error("Verification failed for " + file);
}
- assertTrue(verify, filename);
+ assertTrue(verify, file.toString());
}
/**
@@ -112,8 +100,7 @@ public class BaltimoreXalanTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_sixteen_bad_signature() throws Exception {
- String filename =
- merlinsDir16 + "/bad-signature.xml";
+ File filename = new File(merlinsDir16 + "/bad-signature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -129,7 +116,7 @@ public class BaltimoreXalanTest extends InteropTestBase {
LOG.error("Verification passed (should have failed) for " + filename);
}
- assertFalse(verify, filename);
+ assertFalse(verify, filename.toString());
}
@@ -141,8 +128,7 @@ public class BaltimoreXalanTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_twenty_three_external_dsa_2() throws Exception {
- String filename =
- merlinsDir23 + "signature.xml";
+ File filename = new File(merlinsDir23, "signature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -158,7 +144,7 @@ public class BaltimoreXalanTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/IAIKTest.java b/src/test/java/org/apache/xml/security/test/dom/interop/IAIKTest.java
index 38404c51..f5d43d45 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/IAIKTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/IAIKTest.java
@@ -18,17 +18,19 @@
*/
package org.apache.xml.security.test.dom.interop;
-import org.apache.xml.security.test.dom.utils.resolver.OfflineResolver;
-
-
+import java.io.File;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Path;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.dom.utils.resolver.OfflineResolver;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
import org.apache.xml.security.utils.resolver.implementations.ResolverAnonymous;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -46,24 +48,14 @@ public class IAIKTest extends InteropTestBase {
org.slf4j.LoggerFactory.getLogger(IAIKTest.class);
/** Field gregorsDir */
- static String gregorsDir = "src/test/resources/at/iaik/ixsil/";
+ static Path gregorsDir;
static {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- gregorsDir = basedir + "/" + gregorsDir;
- }
+ gregorsDir = resolvePath("src", "test", "resources", "at", "iaik", "ixsil");
org.apache.xml.security.Init.init();
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
- /**
- * Constructor IAIKTest
- */
- public IAIKTest() {
- super();
- }
-
/**
* Method test_signatureAlgorithms_signatures_hMACShortSignature
*
@@ -73,8 +65,7 @@ public class IAIKTest extends InteropTestBase {
public void test_signatureAlgorithms_signatures_hMACShortSignature()
throws Exception {
- String filename =
- gregorsDir + "signatureAlgorithms/signatures/hMACShortSignature.xml";
+ File filename = resolveFile(gregorsDir, "signatureAlgorithms", "signatures", "hMACShortSignature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
byte[] hmacKey = "secret".getBytes(StandardCharsets.US_ASCII);
@@ -101,7 +92,7 @@ public class IAIKTest extends InteropTestBase {
public void test_signatureAlgorithms_signatures_hMACSignature()
throws Exception {
- String filename = gregorsDir + "signatureAlgorithms/signatures/hMACSignature.xml";
+ File filename = resolveFile(gregorsDir, "signatureAlgorithms", "signatures", "hMACSignature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
byte[] hmacKey = "secret".getBytes(StandardCharsets.US_ASCII);
@@ -119,7 +110,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -131,7 +122,7 @@ public class IAIKTest extends InteropTestBase {
public void test_coreFeatures_signatures_manifestSignature_core()
throws Exception {
- String filename = gregorsDir + "coreFeatures/signatures/manifestSignature.xml";
+ File filename = resolveFile(gregorsDir, "coreFeatures", "signatures", "manifestSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -160,7 +151,7 @@ public class IAIKTest extends InteropTestBase {
public void test_coreFeatures_signatures_manifestSignature_manifest()
throws Exception {
- String filename = gregorsDir + "coreFeatures/signatures/manifestSignature.xml";
+ File filename = resolveFile(gregorsDir, "coreFeatures", "signatures", "manifestSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = true;
boolean verify = false;
@@ -189,7 +180,7 @@ public class IAIKTest extends InteropTestBase {
public void test_coreFeatures_signatures_signatureTypesSignature()
throws Exception {
- String filename = gregorsDir + "coreFeatures/signatures/signatureTypesSignature.xml";
+ File filename = resolveFile(gregorsDir, "coreFeatures", "signatures", "signatureTypesSignature.xml");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -218,10 +209,9 @@ public class IAIKTest extends InteropTestBase {
public void test_coreFeatures_signatures_anonymousReferenceSignature()
throws Exception {
- String filename =
- gregorsDir + "coreFeatures/signatures/anonymousReferenceSignature.xml";
- String anonymousRef =
- gregorsDir + "coreFeatures/samples/anonymousReferenceContent.xml";
+ File filename = resolveFile(gregorsDir, "coreFeatures", "signatures", "anonymousReferenceSignature.xml");
+ String anonymousRef = resolveFile(gregorsDir, "coreFeatures", "samples", "anonymousReferenceContent.xml")
+ .getAbsolutePath();
ResourceResolverSpi resolver = new ResolverAnonymous(anonymousRef);
boolean followManifests = false;
boolean verify = false;
@@ -238,7 +228,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -250,7 +240,7 @@ public class IAIKTest extends InteropTestBase {
public void test_signatureAlgorithms_signatures_dSASignature()
throws Exception {
- String filename = gregorsDir + "signatureAlgorithms/signatures/dSASignature.xml";
+ File filename = resolveFile(gregorsDir, "signatureAlgorithms", "signatures", "dSASignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -267,7 +257,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -279,7 +269,7 @@ public class IAIKTest extends InteropTestBase {
public void test_signatureAlgorithms_signatures_rSASignature()
throws Exception {
- String filename = gregorsDir + "signatureAlgorithms/signatures/rSASignature.xml";
+ File filename = resolveFile(gregorsDir, "signatureAlgorithms", "signatures", "rSASignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -296,7 +286,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -308,7 +298,7 @@ public class IAIKTest extends InteropTestBase {
public void test_transforms_signatures_base64DecodeSignature()
throws Exception {
- String filename = gregorsDir + "transforms/signatures/base64DecodeSignature.xml";
+ File filename = resolveFile(gregorsDir, "transforms", "signatures", "base64DecodeSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -325,7 +315,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -336,7 +326,7 @@ public class IAIKTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_transforms_signatures_c14nSignature() throws Exception {
- String filename = gregorsDir + "transforms/signatures/c14nSignature.xml";
+ File filename = resolveFile(gregorsDir, "transforms", "signatures", "c14nSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -353,7 +343,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -365,8 +355,7 @@ public class IAIKTest extends InteropTestBase {
public void test_transforms_signatures_envelopedSignatureSignature()
throws Exception {
- String filename =
- gregorsDir + "transforms/signatures/envelopedSignatureSignature.xml";
+ File filename = resolveFile(gregorsDir, "transforms", "signatures", "envelopedSignatureSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -383,7 +372,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -394,7 +383,7 @@ public class IAIKTest extends InteropTestBase {
@org.junit.jupiter.api.Test
public void test_transforms_signatures_xPathSignature() throws Exception {
- String filename = gregorsDir + "transforms/signatures/xPathSignature.xml";
+ File filename = resolveFile(gregorsDir, "transforms", "signatures", "xPathSignature.xml");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -411,7 +400,7 @@ public class IAIKTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/IBMTest.java b/src/test/java/org/apache/xml/security/test/dom/interop/IBMTest.java
index 01d9aa0b..d996fe63 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/IBMTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/IBMTest.java
@@ -20,11 +20,12 @@ package org.apache.xml.security.test.dom.interop;
import java.io.File;
+import java.nio.file.Files;
import org.apache.xml.security.test.dom.utils.resolver.OfflineResolver;
-import org.apache.xml.security.utils.JavaUtils;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -54,7 +55,7 @@ public class IBMTest extends InteropTestBase {
org.slf4j.LoggerFactory.getLogger(IBMTest.class);
/** Field kentsDir */
- static final String kentsDir = "data/com/ibm/xss4j-20030127/";
+ static final File kentsDir = resolveFile("data", "com", "ibm", "xss4j-20030127");
static {
org.apache.xml.security.Init.init();
@@ -64,13 +65,10 @@ public class IBMTest extends InteropTestBase {
/**
* Constructor IBMTest
- *
- * @param Name_
*/
public IBMTest() {
super();
- String filename = "src/test/resources/com/ibm/xss4j-20011029/enveloped-rsa.sig";
- File f = new File(filename);
+ File f = resolveFile("src", "test", "resources", "com", "ibm", "xss4j-20011029", "enveloped-rsa.sig");
if (f.exists()) {
runTests = true;
}
@@ -86,10 +84,10 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloping-hmac.sig";
+ File filename = new File(kentsDir, "enveloping-hmac.sig");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
- byte[] hmacKey = JavaUtils.getBytesFromFile(kentsDir + "enveloping-hmac.key");
+ byte[] hmacKey = Files.readAllBytes(new File(kentsDir, "enveloping-hmac.key").toPath());
boolean verify = false;
try {
@@ -103,7 +101,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -116,7 +114,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "detached-dsa.sig";
+ File filename = new File(kentsDir, "detached-dsa.sig");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -132,7 +130,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -145,7 +143,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "detached-rsa.sig";
+ File filename = new File(kentsDir, "detached-rsa.sig");
ResourceResolverSpi resolver = new OfflineResolver();
boolean followManifests = false;
boolean verify = false;
@@ -161,7 +159,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -174,7 +172,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloped-dsa.sig";
+ File filename = new File(kentsDir, "enveloped-dsa.sig");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -190,7 +188,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -203,7 +201,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloped-rsa.sig";
+ File filename = new File(kentsDir, "enveloped-rsa.sig");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -219,7 +217,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -232,7 +230,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloping-dsa.sig";
+ File filename = new File(kentsDir, "enveloping-dsa.sig");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -248,7 +246,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -261,7 +259,7 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloping-rsa.sig";
+ File filename = new File(kentsDir, "enveloping-rsa.sig");
ResourceResolverSpi resolver = null;
boolean followManifests = false;
boolean verify = false;
@@ -277,7 +275,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
/**
@@ -290,8 +288,8 @@ public class IBMTest extends InteropTestBase {
if (!runTests) {
return;
}
- String filename = kentsDir + "enveloping-dsa-soaped-broken.sig";
- if (!new File(filename).exists() ) {
+ File filename = new File(kentsDir, "enveloping-dsa-soaped-broken.sig");
+ if (!filename.exists() ) {
System.err.println("Couldn't find: " + filename + " and couldn't do the test");
return;
}
@@ -310,7 +308,7 @@ public class IBMTest extends InteropTestBase {
LOG.error("Verification failed for " + filename + ", had to be broken but was successful");
}
- assertFalse(verify, filename);
+ assertFalse(verify, filename.toString());
}
/**
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/InteropTestBase.java b/src/test/java/org/apache/xml/security/test/dom/interop/InteropTestBase.java
index b52823eb..565e3b31 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/InteropTestBase.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/InteropTestBase.java
@@ -19,7 +19,6 @@
package org.apache.xml.security.test.dom.interop;
import java.io.File;
-import java.io.FileInputStream;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import java.util.Iterator;
@@ -53,26 +52,23 @@ public class InteropTestBase {
/**
* Method verifyHMAC
*
- * @param filename
+ * @param file
* @param resolver
* @param hmacKey
*
* @throws Exception
*/
- public boolean verifyHMAC(
- String filename, ResourceResolverSpi resolver, boolean followManifests, byte[] hmacKey
- ) throws Exception {
- File f = new File(filename);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ public boolean verifyHMAC(File file, ResourceResolverSpi resolver, boolean followManifests, byte[] hmacKey)
+ throws Exception {
+ org.w3c.dom.Document doc = XMLUtils.read(file, false);
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
xpath.setNamespaceContext(new DSNamespaceContext());
String expression = "//ds:Signature[1]";
- Element sigElement =
- (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
- XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString());
+ Element sigElement = (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
+ XMLSignature signature = new XMLSignature(sigElement, file.toURI().toURL().toString());
if (resolver != null) {
signature.addResourceResolver(resolver);
@@ -85,16 +81,15 @@ public class InteropTestBase {
return signature.checkSignatureValue(sk);
}
- public boolean verify(String filename, ResourceResolverSpi resolver, boolean followManifests)
+ public boolean verify(File file, ResourceResolverSpi resolver, boolean followManifests)
throws Exception {
- return verify(filename, resolver, followManifests, true);
+ return verify(file, resolver, followManifests, true);
}
- public boolean verify(String filename, ResourceResolverSpi resolver,
- boolean followManifests, boolean secureValidation)
+
+ public boolean verify(File file, ResourceResolverSpi resolver, boolean followManifests, boolean secureValidation)
throws Exception {
- File f = new File(filename);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ org.w3c.dom.Document doc = XMLUtils.read(file, false);
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
@@ -103,7 +98,7 @@ public class InteropTestBase {
String expression = "//ds:Signature[1]";
Element sigElement =
(Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
- XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString(), secureValidation);
+ XMLSignature signature = new XMLSignature(sigElement, file.toURI().toURL().toString(), secureValidation);
if (resolver != null) {
signature.addResourceResolver(resolver);
@@ -112,31 +107,25 @@ public class InteropTestBase {
KeyInfo ki = signature.getKeyInfo();
- boolean result = false;
- if (ki != null) {
- X509Certificate cert = ki.getX509Certificate();
-
- if (cert != null) {
- result = signature.checkSignatureValue(cert);
- } else {
- PublicKey pk = ki.getPublicKey();
+ if (ki == null) {
+ throw new RuntimeException("Did not find a KeyInfo");
+ }
+ X509Certificate cert = ki.getX509Certificate();
- if (pk != null) {
- result = signature.checkSignatureValue(pk);
- } else {
- throw new RuntimeException(
- "Did not find a public key, so I can't check the signature");
- }
+ final boolean result;
+ if (cert == null) {
+ PublicKey pk = ki.getPublicKey();
+ if (pk == null) {
+ throw new RuntimeException("Did not find a public key, so I can't check the signature");
}
- checkReferences(signature);
+ result = signature.checkSignatureValue(pk);
} else {
- throw new RuntimeException("Did not find a KeyInfo");
+ result = signature.checkSignatureValue(cert);
}
+ checkReferences(signature);
if (!result) {
for (int i = 0; i < signature.getSignedInfo().getLength(); i++) {
- boolean refVerify =
- signature.getSignedInfo().getVerificationResult(i);
-
+ boolean refVerify = signature.getSignedInfo().getVerificationResult(i);
if (refVerify) {
LOG.debug("Reference " + i + " was OK");
} else {
diff --git a/src/test/java/org/apache/xml/security/test/dom/interop/RSASecurityTest.java b/src/test/java/org/apache/xml/security/test/dom/interop/RSASecurityTest.java
index a24a659d..6e5cc5de 100644
--- a/src/test/java/org/apache/xml/security/test/dom/interop/RSASecurityTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/interop/RSASecurityTest.java
@@ -20,6 +20,9 @@ package org.apache.xml.security.test.dom.interop;
+import java.io.File;
+
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -38,28 +41,17 @@ public class RSASecurityTest extends InteropTestBase {
org.slf4j.LoggerFactory.getLogger(RSASecurityTest.class);
/** Field blakesDir */
- static String blakesDir =
- "src/test/resources/com/rsasecurity/bdournaee/";
+ static File blakesDir;
static {
- String basedir = System.getProperty("basedir");
- if(basedir != null && basedir.length() != 0) {
- blakesDir = basedir + "/" + blakesDir;
- }
+ blakesDir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "com", "rsasecurity", "bdournaee");
org.apache.xml.security.Init.init();
}
- /**
- * Constructor RSASecurityTest
- */
- public RSASecurityTest() {
- super();
- }
-
@org.junit.jupiter.api.Test
public void test_enveloping() throws Exception {
- String filename = blakesDir + "certj201_enveloping.xml";
+ File filename = new File(blakesDir, "certj201_enveloping.xml");
boolean followManifests = false;
ResourceResolverSpi resolver = null;
boolean verify = this.verify(filename, resolver, followManifests);
@@ -68,13 +60,13 @@ public class RSASecurityTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
@org.junit.jupiter.api.Test
public void test_enveloped() throws Exception {
- String filename = blakesDir + "certj201_enveloped.xml";
+ File filename = new File(blakesDir, "certj201_enveloped.xml");
boolean followManifests = false;
ResourceResolverSpi resolver = null;
boolean verify = this.verify(filename, resolver, followManifests);
@@ -83,7 +75,7 @@ public class RSASecurityTest extends InteropTestBase {
LOG.error("Verification failed for " + filename);
}
- assertTrue(verify, filename);
+ assertTrue(verify, filename.toString());
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/DEREncodedKeyValueTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/DEREncodedKeyValueTest.java
index 7bc5dd2d..f73d880e 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/DEREncodedKeyValueTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/DEREncodedKeyValueTest.java
@@ -18,12 +18,15 @@
*/
package org.apache.xml.security.test.dom.keys;
+import java.io.File;
import java.io.FileInputStream;
+import java.nio.file.FileSystems;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import org.apache.xml.security.keys.content.DEREncodedKeyValue;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.JavaUtils;
@@ -40,14 +43,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class DEREncodedKeyValueTest {
- private static final String BASEDIR = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
+ private static final String SEP = FileSystems.getDefault().getSeparator();
private static final String ID_CONTROL = "abc123";
- private PublicKey rsaKeyControl;
- private PublicKey dsaKeyControl;
- private PublicKey ecKeyControl;
+ private final PublicKey rsaKeyControl;
+ private final PublicKey dsaKeyControl;
+ private final PublicKey ecKeyControl;
public DEREncodedKeyValueTest() throws Exception {
rsaKeyControl = loadPublicKey("rsa.key", "RSA");
@@ -138,11 +140,9 @@ public class DEREncodedKeyValueTest {
// Utility methods
- private String getControlFilePath(String fileName) {
- return BASEDIR + SEP + "src" + SEP + "test" + SEP + "resources" +
- SEP + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" +
- SEP + "keys" + SEP + "content" +
- SEP + fileName;
+ private File getControlFilePath(String fileName) {
+ return XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "keys",
+ "content", fileName);
}
private Document loadXML(String fileName) throws Exception {
@@ -150,7 +150,7 @@ public class DEREncodedKeyValueTest {
}
private PublicKey loadPublicKey(String filePath, String algorithm) throws Exception {
- String fileData = new String(JavaUtils.getBytesFromFile(getControlFilePath(filePath)));
+ String fileData = new String(JavaUtils.getBytesFromFile(getControlFilePath(filePath).getAbsolutePath()));
byte[] keyBytes = XMLUtils.decode(fileData);
KeyFactory kf = KeyFactory.getInstance(algorithm);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/KeyInfoReferenceTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/KeyInfoReferenceTest.java
index 793bc8b6..75b82c74 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/KeyInfoReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/KeyInfoReferenceTest.java
@@ -18,9 +18,11 @@
*/
package org.apache.xml.security.test.dom.keys;
+import java.io.File;
import java.io.FileInputStream;
import org.apache.xml.security.keys.content.KeyInfoReference;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
@@ -35,7 +37,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class KeyInfoReferenceTest {
- private static final String BASEDIR = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
private static final String ID_CONTROL = "abc123";
@@ -84,15 +85,13 @@ public class KeyInfoReferenceTest {
// Utility methods
- private String getControlFilePath(String fileName) {
- return BASEDIR + SEP + "src" + SEP + "test" + SEP + "resources" +
- SEP + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" +
- SEP + "keys" + SEP + "content" +
- SEP + fileName;
+ private File getControlFilePath(String fileName) {
+ return XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "keys",
+ "content", fileName);
}
private Document loadXML(String fileName) throws Exception {
- return XMLUtils.read(new FileInputStream(getControlFilePath(fileName)), false);
+ return XMLUtils.read(getControlFilePath(fileName), false);
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509CertificateTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509CertificateTest.java
index acbf2227..5ac3bce6 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509CertificateTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509CertificateTest.java
@@ -23,57 +23,42 @@ import java.io.FileInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
+import org.apache.xml.security.keys.content.x509.XMLX509Certificate;
import org.apache.xml.security.test.dom.TestUtils;
+import org.apache.xml.security.utils.Constants;
+import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import org.apache.xml.security.keys.content.x509.XMLX509Certificate;
-import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.XMLUtils;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Certificate parsing test.
- *
*/
public class XMLX509CertificateTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
@org.junit.jupiter.api.Test
public void testGetX509Certificate() throws Exception {
- File f = new File(BASEDIR + SEP + "src/test/resources" + SEP + "ie" + SEP + "baltimore" +
- SEP + "merlin-examples" + SEP + "merlin-xmldsig-twenty-three" +
- SEP + "signature-x509-crt.xml");
-
- FileInputStream fis = new FileInputStream(f);
- Document doc = XMLUtils.read(fis, false);
- NodeList nl = doc.getElementsByTagNameNS
- (Constants.SignatureSpecNS, "X509Certificate");
- XMLX509Certificate xmlCert =
- new XMLX509Certificate((Element) nl.item(0), "");
+ File f = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
+ "merlin-xmldsig-twenty-three", "signature-x509-crt.xml");
+ Document doc = XMLUtils.read(f, false);
+ NodeList nl = doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "X509Certificate");
+ XMLX509Certificate xmlCert = new XMLX509Certificate((Element) nl.item(0), "");
xmlCert.getX509Certificate();
// System.out.println(cert);
}
@org.junit.jupiter.api.Test
public void testEqualsAndHashCode() throws Exception {
- File f = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- f = new File(BASEDIR + SEP +
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
- } else {
- f = new File(
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ File f = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ X509Certificate cert;
+ try (FileInputStream fis = new FileInputStream(f)) {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ cert = (X509Certificate) cf.generateCertificate(fis);
}
- FileInputStream fis = new FileInputStream(f);
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
- X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
-
XMLX509Certificate x509Cert1 = new XMLX509Certificate(TestUtils.newDocument(), cert);
XMLX509Certificate x509Cert2 = new XMLX509Certificate(TestUtils.newDocument(), cert);
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509DigestTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509DigestTest.java
index 26f83f25..04d2952e 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509DigestTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509DigestTest.java
@@ -18,12 +18,14 @@
*/
package org.apache.xml.security.test.dom.keys.content.x509;
+import java.io.File;
import java.io.FileInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import org.apache.xml.security.Init;
import org.apache.xml.security.keys.content.x509.XMLX509Digest;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
@@ -37,13 +39,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class XMLX509DigestTest {
- private static final String BASEDIR = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
private static final String ALG_URI_CONTROL = "http://www.w3.org/2001/04/xmlenc#sha256";
private static final String DIGEST_B64_CONTROL = "jToLQ/K7aaLHy/aXLFnjEfCwSQd9z0MrBOH6Ru/aJyY=";
- private X509Certificate certControl;
+ private final X509Certificate certControl;
private final byte[] digestControl;
public XMLX509DigestTest() throws Exception {
@@ -98,21 +99,20 @@ public class XMLX509DigestTest {
// Utility methods
- private String getControlFilePath(String fileName) {
- return BASEDIR + SEP + "src" + SEP + "test" + SEP + "resources" +
- SEP + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" +
- SEP + "keys" + SEP + "content" + SEP + "x509" +
- SEP + fileName;
+ private File getControlFilePath(String fileName) {
+ return XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "keys",
+ "content", "x509", fileName);
}
private Document loadXML(String fileName) throws Exception {
- return XMLUtils.read(new FileInputStream(getControlFilePath(fileName)), false);
+ return XMLUtils.read(getControlFilePath(fileName), false);
}
private X509Certificate loadCertificate(String fileName) throws Exception {
- FileInputStream fis = new FileInputStream(getControlFilePath(fileName));
- CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
- return (X509Certificate) certFactory.generateCertificate(fis);
+ try (FileInputStream fis = new FileInputStream(getControlFilePath(fileName))) {
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ return (X509Certificate) certFactory.generateCertificate(fis);
+ }
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SKITest.java b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SKITest.java
index acb36b25..0fbe5708 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SKITest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SKITest.java
@@ -32,6 +32,7 @@ import java.util.Collections;
import org.apache.xml.security.keys.content.x509.XMLX509SKI;
import org.apache.xml.security.test.dom.TestUtils;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -41,9 +42,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
*/
public class XMLX509SKITest {
- private static final String BASEDIR = System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
- private CertificateFactory cf;
+ private final CertificateFactory cf;
public XMLX509SKITest() throws Exception {
cf = CertificateFactory.getInstance("X.509");
@@ -51,18 +51,12 @@ public class XMLX509SKITest {
@org.junit.jupiter.api.Test
public void testGetSKIBytesFromCert() throws Exception {
- File f = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- f = new File(BASEDIR + SEP +
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
- } else {
- f = new File(
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ File f = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ X509Certificate cert;
+ try (FileInputStream fis = new FileInputStream(f)) {
+ cert = (X509Certificate) cf.generateCertificate(fis);
}
- FileInputStream fis = new FileInputStream(f);
- X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
-
// Get subject key identifier from certificate
byte[] skid = XMLX509SKI.getSKIBytesFromCert(cert);
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SubjectNameTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SubjectNameTest.java
index 237c5328..740afc1a 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SubjectNameTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/content/x509/XMLX509SubjectNameTest.java
@@ -26,6 +26,7 @@ import java.security.cert.X509Certificate;
import org.apache.xml.security.keys.content.x509.XMLX509SubjectName;
import org.apache.xml.security.test.dom.TestUtils;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -35,25 +36,17 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
*/
public class XMLX509SubjectNameTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
@org.junit.jupiter.api.Test
public void testEqualsAndHashCode() throws Exception {
- File f = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- f = new File(BASEDIR + SEP +
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
- } else {
- f = new File(
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ File f = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+ X509Certificate cert;
+ try (FileInputStream fis = new FileInputStream(f)) {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ cert = (X509Certificate) cf.generateCertificate(fis);
}
- FileInputStream fis = new FileInputStream(f);
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
- X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
-
XMLX509SubjectName x509SubjectName1 = new XMLX509SubjectName(TestUtils.newDocument(), cert);
assertNotNull(x509SubjectName1.getSubjectName());
XMLX509SubjectName x509SubjectName2 = new XMLX509SubjectName(TestUtils.newDocument(), cert);
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyInfoReferenceResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyInfoReferenceResolverTest.java
index 2f81cfdf..1ee696a6 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyInfoReferenceResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyInfoReferenceResolverTest.java
@@ -18,7 +18,10 @@
*/
package org.apache.xml.security.test.dom.keys.keyresolver;
+import java.io.File;
import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.cert.CertificateFactory;
@@ -27,6 +30,7 @@ import java.security.spec.X509EncodedKeySpec;
import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.JavaUtils;
import org.apache.xml.security.utils.XMLUtils;
@@ -41,9 +45,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
public class KeyInfoReferenceResolverTest {
- private static final String BASEDIR = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
public KeyInfoReferenceResolverTest() throws Exception {
if (!Init.isInitialized()) {
Init.init();
@@ -140,11 +141,9 @@ public class KeyInfoReferenceResolverTest {
// Utility methods
- private String getControlFilePath(String fileName) {
- return BASEDIR + SEP + "src" + SEP + "test" + SEP + "resources" +
- SEP + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" +
- SEP + "keyresolver" +
- SEP + fileName;
+ private File getControlFilePath(String fileName) {
+ return XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "apache", "xml", "security",
+ "keyresolver", fileName);
}
private Document loadXML(String fileName) throws Exception {
@@ -152,7 +151,7 @@ public class KeyInfoReferenceResolverTest {
}
private PublicKey loadPublicKey(String filePath, String algorithm) throws Exception {
- String fileData = new String(JavaUtils.getBytesFromFile(getControlFilePath(filePath)));
+ String fileData = new String(JavaUtils.getBytesFromFile(getControlFilePath(filePath).getAbsolutePath()));
byte[] keyBytes = XMLUtils.decode(fileData);
KeyFactory kf = KeyFactory.getInstance(algorithm);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
@@ -160,9 +159,10 @@ public class KeyInfoReferenceResolverTest {
}
private X509Certificate loadCertificate(String fileName) throws Exception {
- FileInputStream fis = new FileInputStream(getControlFilePath(fileName));
- CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
- return (X509Certificate) certFactory.generateCertificate(fis);
+ try (InputStream fis = Files.newInputStream(getControlFilePath(fileName).toPath())) {
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ return (X509Certificate) certFactory.generateCertificate(fis);
+ }
}
private void markKeyInfoIdAttrs(Document doc) {
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyResolverTest.java
index 65cd77e3..9d4adca5 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/KeyResolverTest.java
@@ -61,6 +61,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -70,7 +71,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
*/
public class KeyResolverTest {
- private static final String BASEDIR = System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
public KeyResolverTest() {
@@ -92,13 +92,9 @@ public class KeyResolverTest {
char[] pwd = "secret".toCharArray();
KeyStore ks = KeyStore.getInstance("JCEKS");
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP + "src/test/resources/test.jceks");
- } else {
- fis = new FileInputStream("src/test/resources/test.jceks");
+ try (FileInputStream fis = new FileInputStream(resolveFile("src/test/resources/test.jceks"))) {
+ ks.load(fis, pwd);
}
- ks.load(fis, pwd);
X509Certificate cert = (X509Certificate)ks.getCertificate("rsakey");
PublicKey publicKey = cert.getPublicKey();
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/RetrievalMethodResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/RetrievalMethodResolverTest.java
index 9502c09c..64c85992 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/RetrievalMethodResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/RetrievalMethodResolverTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.xml.security.test.dom.keys.keyresolver;
-import java.io.FileInputStream;
import java.security.Security;
import org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI;
@@ -26,15 +25,14 @@ import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+
/**
* Some tests on attacks against the RetrievalMethodResolver.
*/
public class RetrievalMethodResolverTest {
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
public RetrievalMethodResolverTest() {
org.apache.xml.security.Init.init();
Security.insertProviderAt(new XMLDSigRI(), 1);
@@ -42,16 +40,8 @@ public class RetrievalMethodResolverTest {
@org.junit.jupiter.api.Test
public void testReferenceToSameRetrievalMethod() throws Exception {
- FileInputStream fis = null;
String filename = "src/test/resources/org/apache/xml/security/keyresolver/retrievalmethod1.xml";
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP + filename);
- } else {
- fis = new FileInputStream(filename);
- }
-
- Document doc = XMLUtils.read(fis, false);
-
+ Document doc = XMLUtils.read(resolveFile(filename), false);
KeyInfo keyInfo = new KeyInfo(doc.getDocumentElement(), null);
// Check neither of these give a StackOverflowError.
@@ -61,16 +51,8 @@ public class RetrievalMethodResolverTest {
@org.junit.jupiter.api.Test
public void testLoopBetweenRetrievalMethods() throws Exception {
- FileInputStream fis = null;
String filename = "src/test/resources/org/apache/xml/security/keyresolver/retrievalmethod2.xml";
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP + filename);
- } else {
- fis = new FileInputStream(filename);
- }
-
- Document doc = XMLUtils.read(fis, false);
-
+ Document doc = XMLUtils.read(resolveFile(filename), false);
KeyInfo keyInfo = new KeyInfo(doc.getDocumentElement(), null);
// Check neither of these give a StackOverflowError.
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/X509DigestResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/X509DigestResolverTest.java
index e299a011..49804664 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/X509DigestResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/keyresolver/X509DigestResolverTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.xml.security.test.dom.keys.keyresolver;
+import java.io.File;
import java.io.FileInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
@@ -26,6 +27,7 @@ import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.keys.storage.StorageResolver;
import org.apache.xml.security.keys.storage.implementations.SingleCertificateResolver;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -36,12 +38,11 @@ import static org.junit.jupiter.api.Assertions.assertNull;
public class X509DigestResolverTest {
- private static final String BASEDIR = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
- private X509Certificate certControl;
+ private final X509Certificate certControl;
- private StorageResolver storageResolver;
+ private final StorageResolver storageResolver;
public X509DigestResolverTest() throws Exception {
certControl = loadCertificate("cert-X509Digest.crt");
@@ -72,21 +73,20 @@ public class X509DigestResolverTest {
// Utility methods
- private String getControlFilePath(String fileName) {
- return BASEDIR + SEP + "src" + SEP + "test" + SEP + "resources" +
- SEP + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" +
- SEP + "keys" + SEP + "content" + SEP + "x509" +
- SEP + fileName;
+ private File getControlFilePath(String fileName) {
+ return XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "apache", "xml",
+ "security", "keys", "content", "x509", fileName);
}
private Document loadXML(String fileName) throws Exception {
- return XMLUtils.read(new FileInputStream(getControlFilePath(fileName)), false);
+ return XMLUtils.read(getControlFilePath(fileName), false);
}
private X509Certificate loadCertificate(String fileName) throws Exception {
- FileInputStream fis = new FileInputStream(getControlFilePath(fileName));
- CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
- return (X509Certificate) certFactory.generateCertificate(fis);
+ try (FileInputStream fis = new FileInputStream(getControlFilePath(fileName))) {
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ return (X509Certificate) certFactory.generateCertificate(fis);
+ }
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/storage/KeyStoreResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/storage/KeyStoreResolverTest.java
index e8f8ade2..51f8ad10 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/storage/KeyStoreResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/storage/KeyStoreResolverTest.java
@@ -27,6 +27,7 @@ import java.util.NoSuchElementException;
import org.apache.xml.security.keys.storage.implementations.KeyStoreResolver;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.fail;
@@ -37,10 +38,6 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class KeyStoreResolverTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
@org.junit.jupiter.api.Test
public void testKeyStoreResolver() throws Exception {
@@ -51,13 +48,11 @@ public class KeyStoreResolverTest {
return;
}
- FileInputStream f =
- new FileInputStream(BASEDIR + SEP + "src/test/resources" + SEP + "org" + SEP + "apache"
- + SEP + "xml" + SEP + "security" + SEP + "samples"
- + SEP + "input" + SEP + "keystore2.jks");
-
KeyStore ks = KeyStore.getInstance("JCEKS");
- ks.load(f, "xmlsecurity".toCharArray());
+ try (FileInputStream f = new FileInputStream(resolveFile("src", "test", "resources", "org", "apache", "xml",
+ "security", "samples", "input", "keystore2.jks"))) {
+ ks.load(f, "xmlsecurity".toCharArray());
+ }
KeyStoreResolver ksResolver = new KeyStoreResolver(ks);
Iterator<?> iter = ksResolver.getIterator();
diff --git a/src/test/java/org/apache/xml/security/test/dom/keys/storage/StorageResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/keys/storage/StorageResolverTest.java
index 38faf86e..e3ef8652 100644
--- a/src/test/java/org/apache/xml/security/test/dom/keys/storage/StorageResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/keys/storage/StorageResolverTest.java
@@ -19,6 +19,7 @@
package org.apache.xml.security.test.dom.keys.storage;
+import java.io.File;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
@@ -27,6 +28,7 @@ import java.util.NoSuchElementException;
import org.apache.xml.security.keys.storage.StorageResolver;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.fail;
@@ -37,10 +39,6 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class StorageResolverTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
@org.junit.jupiter.api.Test
public void testStorageResolver() throws Exception {
@@ -51,17 +49,16 @@ public class StorageResolverTest {
return;
}
- String inputDir = BASEDIR + SEP + "src/test/resources" + SEP
- + "org" + SEP + "apache" + SEP + "xml" + SEP + "security" + SEP
- + "samples" + SEP + "input";
-
- FileInputStream inStream = new FileInputStream(inputDir + SEP + "keystore.jks");
+ File inputDir = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "samples", "input");
KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(inStream, "xmlsecurity".toCharArray());
+ try (FileInputStream inStream = new FileInputStream(new File(inputDir, "keystore.jks"))) {
+ ks.load(inStream, "xmlsecurity".toCharArray());
+ }
- FileInputStream inStream2 = new FileInputStream(inputDir + SEP + "keystore2.jks");
KeyStore ks2 = KeyStore.getInstance("JCEKS");
- ks2.load(inStream2, "xmlsecurity".toCharArray());
+ try (FileInputStream inStream2 = new FileInputStream(new File(inputDir, "keystore2.jks"))) {
+ ks2.load(inStream2, "xmlsecurity".toCharArray());
+ }
StorageResolver storage = new StorageResolver(ks);
storage.add(ks2);
diff --git a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenAlgorithmTest.java b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenAlgorithmTest.java
index 37416d2e..627b978c 100644
--- a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenAlgorithmTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenAlgorithmTest.java
@@ -20,7 +20,6 @@ package org.apache.xml.security.test.dom.secure_val;
import java.io.File;
-import java.io.FileInputStream;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
@@ -29,12 +28,12 @@ import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
-
/**
* This is a test for a forbidden algorithm (MD5) when secure validation is enabled.
*/
@@ -47,19 +46,14 @@ public class ForbiddenAlgorithmTest extends InteropTestBase {
org.apache.xml.security.Init.init();
}
- public ForbiddenAlgorithmTest() {
- super();
- }
-
@org.junit.jupiter.api.Test
public void testMD5Digest() throws Exception {
- boolean success =
- readAndVerifySignature("src/test/resources/interop/c14n/Y2", "signature-joseph-exc.xml", false);
+ boolean success = readAndVerifySignature("signature-joseph-exc.xml", false);
assertTrue(success);
try {
- readAndVerifySignature("src/test/resources/interop/c14n/Y2", "signature-joseph-exc.xml", true);
+ readAndVerifySignature("signature-joseph-exc.xml", true);
fail("Failure expected when secure validation is enabled");
} catch (XMLSignatureException ex) {
String error = "It is forbidden to use algorithm http://www.w3.org/2001/04/xmldsig-more#md5 "
@@ -68,21 +62,13 @@ public class ForbiddenAlgorithmTest extends InteropTestBase {
}
}
- private boolean readAndVerifySignature(
- String directory, String file, boolean secValidation
- ) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
-
- File f = new File(directory + "/" + file);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ private boolean readAndVerifySignature(String file, boolean secValidation) throws Exception {
+ File f = resolveFile("src", "test", "resources", "interop", "c14n", "Y2", file);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
- Element sigElement =
- (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNATURE).item(0);
+ Element sigElement = (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNATURE)
+ .item(0);
XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString(), secValidation);
return signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRefCountTest.java b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRefCountTest.java
index daea5abc..f5879f3c 100644
--- a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRefCountTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRefCountTest.java
@@ -19,8 +19,6 @@
package org.apache.xml.security.test.dom.secure_val;
-import java.io.FileInputStream;
-import java.io.InputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
@@ -31,6 +29,7 @@ import javax.xml.parsers.ParserConfigurationException;
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.test.dom.interop.InteropTestBase;
import org.apache.xml.security.transforms.Transforms;
@@ -47,23 +46,10 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class ForbiddenRefCountTest extends InteropTestBase {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- public static final String KEYSTORE_DIRECTORY = BASEDIR + "/src/test/resources/";
- public static final String KEYSTORE_PASSWORD_STRING = "changeit";
- public static final char[] KEYSTORE_PASSWORD = KEYSTORE_PASSWORD_STRING.toCharArray();
-
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(ForbiddenRefCountTest.class);
-
static {
org.apache.xml.security.Init.init();
}
- public ForbiddenRefCountTest() {
- super();
- }
-
@org.junit.jupiter.api.Test
public void testReferenceCount() throws Exception {
Document doc = getOriginalDocument();
@@ -100,8 +86,9 @@ public class ForbiddenRefCountTest extends InteropTestBase {
sig.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);
}
- sig.addKeyInfo(getPublicKey());
- sig.sign(getPrivateKey());
+ KeyStore ks = XmlSecTestEnvironment.getTestKeyStore();
+ sig.addKeyInfo(getPublicKey(ks));
+ sig.sign(getPrivateKey(ks));
}
private boolean verifySignature(Document doc, boolean secValidation) throws XMLSignatureException, XMLSecurityException {
@@ -112,16 +99,8 @@ public class ForbiddenRefCountTest extends InteropTestBase {
return signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
}
- private KeyStore getKeyStore() throws Exception {
- KeyStore ks = KeyStore.getInstance("JKS");
- InputStream ksis = new FileInputStream(KEYSTORE_DIRECTORY + "test.jks");
- ks.load(ksis, KEYSTORE_PASSWORD);
- ksis.close();
- return ks;
- }
- private PublicKey getPublicKey() throws Exception {
- KeyStore keyStore = getKeyStore();
+ private PublicKey getPublicKey(KeyStore keyStore) throws Exception {
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
@@ -132,13 +111,12 @@ public class ForbiddenRefCountTest extends InteropTestBase {
return null;
}
- private PrivateKey getPrivateKey() throws Exception {
- KeyStore keyStore = getKeyStore();
+ private PrivateKey getPrivateKey(KeyStore keyStore) throws Exception {
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
if (keyStore.isKeyEntry(alias)) {
- return (PrivateKey) keyStore.getKey(alias, KEYSTORE_PASSWORD);
+ return (PrivateKey) keyStore.getKey(alias, XmlSecTestEnvironment.TEST_KS_PASSWORD.toCharArray());
}
}
return null;
diff --git a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenReferenceTest.java b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenReferenceTest.java
index b827390e..7e976948 100644
--- a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenReferenceTest.java
@@ -20,7 +20,6 @@ package org.apache.xml.security.test.dom.secure_val;
import java.io.File;
-import java.io.FileInputStream;
import org.apache.xml.security.signature.Manifest;
import org.apache.xml.security.signature.MissingResourceFailureException;
@@ -31,31 +30,24 @@ import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
-
/**
* This is a test for a forbidden Reference algorithm
*/
public class ForbiddenReferenceTest extends InteropTestBase {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(ForbiddenReferenceTest.class);
-
static {
org.apache.xml.security.Init.init();
}
- public ForbiddenReferenceTest() {
- super();
- }
-
@org.junit.jupiter.api.Test
public void testLocalFilesystem() throws Exception {
try {
- readAndVerifyManifest("src/test/resources/interop/c14n/Y3", "signature.xml");
+ readAndVerifyManifest("signature.xml");
fail("Failure expected when secure validation is enabled");
} catch (MissingResourceFailureException ex) {
assertTrue(ex.getMessage().contains("The Reference for URI"));
@@ -63,26 +55,17 @@ public class ForbiddenReferenceTest extends InteropTestBase {
// Now it should work as we have added the local file resolver
ResourceResolver.register(new ResolverLocalFilesystem(), false);
- boolean success =
- readAndVerifyManifest("src/test/resources/interop/c14n/Y3", "signature.xml");
+ boolean success = readAndVerifyManifest("signature.xml");
assertTrue(success);
}
- private boolean readAndVerifyManifest(
- String directory, String file
- ) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
-
- File f = new File(directory + "/" + file);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ private boolean readAndVerifyManifest(String file) throws Exception {
+ File f = resolveFile("src", "test", "resources", "interop", "c14n", "Y3", file);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
- Element manifestElement =
- (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNEDINFO).item(0);
+ Element manifestElement = (Element) doc
+ .getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNEDINFO).item(0);
Manifest manifest = new Manifest(manifestElement, f.toURI().toURL().toString(), true);
return manifest.verifyReferences();
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRetrievalMethodTest.java b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRetrievalMethodTest.java
index cd665467..344bd51d 100644
--- a/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRetrievalMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/secure_val/ForbiddenRetrievalMethodTest.java
@@ -19,9 +19,10 @@
package org.apache.xml.security.test.dom.secure_val;
-import java.io.FileInputStream;
+import java.io.File;
import org.apache.xml.security.keys.KeyInfo;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
@@ -34,23 +35,14 @@ import static org.junit.jupiter.api.Assertions.assertNull;
*/
public class ForbiddenRetrievalMethodTest {
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
public ForbiddenRetrievalMethodTest() {
org.apache.xml.security.Init.init();
}
@org.junit.jupiter.api.Test
public void testMultipleRetrievalMethods() throws Exception {
- FileInputStream fis = null;
String filename = "src/test/resources/org/apache/xml/security/keyresolver/retrievalmethod3.xml";
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP + filename);
- } else {
- fis = new FileInputStream(filename);
- }
-
+ File fis = XmlSecTestEnvironment.resolveFile(filename);
Document doc = XMLUtils.read(fis, false);
KeyInfo keyInfo = new KeyInfo(doc.getDocumentElement(), null);
diff --git a/src/test/java/org/apache/xml/security/test/dom/secure_val/WrappingAttackTest.java b/src/test/java/org/apache/xml/security/test/dom/secure_val/WrappingAttackTest.java
index fe8db6ed..0918bbb3 100644
--- a/src/test/java/org/apache/xml/security/test/dom/secure_val/WrappingAttackTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/secure_val/WrappingAttackTest.java
@@ -20,7 +20,6 @@ package org.apache.xml.security.test.dom.secure_val;
import java.io.File;
-import java.io.FileInputStream;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
@@ -29,6 +28,7 @@ import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -39,74 +39,43 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class WrappingAttackTest extends InteropTestBase {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(WrappingAttackTest.class);
-
static {
org.apache.xml.security.Init.init();
}
- public WrappingAttackTest() {
- super();
- }
-
@org.junit.jupiter.api.Test
public void testWrappingAttack() throws Exception {
- boolean success =
- readAndVerifySignature(
- "src/test/resources/at/iaik/ixsil/coreFeatures/signatures",
- "manifestSignatureWrapping.xml"
- );
-
+ boolean success = readAndVerifySignature("manifestSignatureWrapping.xml");
assertTrue(success);
try {
- readAndVerifySignatureAndSetManifest(
- "src/test/resources/at/iaik/ixsil/coreFeatures/signatures",
- "manifestSignatureWrapping.xml"
- );
+ readAndVerifySignatureAndSetManifest("manifestSignatureWrapping.xml");
fail("Failure expected when secure validation is enabled");
} catch (XMLSignatureException ex) {
assertTrue(ex.getMessage().contains("no XMLSignatureInput"));
}
}
- private boolean readAndVerifySignature(
- String directory, String file
- ) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
-
- File f = new File(directory + "/" + file);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ private boolean readAndVerifySignature(String file) throws Exception {
+ File f = resolveFile("src", "test", "resources", "at", "iaik", "ixsil", "coreFeatures", "signatures", file);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
- Element sigElement =
- (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNATURE).item(0);
+ Element sigElement = (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNATURE)
+ .item(0);
XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString());
return signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
}
- private boolean readAndVerifySignatureAndSetManifest(
- String directory, String file
- ) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
- File f = new File(directory + "/" + file);
+ private boolean readAndVerifySignatureAndSetManifest(String file) throws Exception {
+ File f = resolveFile("src", "test", "resources", "at", "iaik", "ixsil", "coreFeatures", "signatures", file);
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
- Element sigElement =
- (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNATURE).item(0);
+ Element sigElement = (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNATURE)
+ .item(0);
- Element manifestElement =
- (Element) doc.getElementsByTagName("Manifest").item(0);
+ Element manifestElement = (Element) doc.getElementsByTagName("Manifest").item(0);
manifestElement.setIdAttribute("Id", true);
XMLSignature signature = new XMLSignature(sigElement, f.toURI().toURL().toString(), true);
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureTest.java
index e9e46e57..c004e7a6 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureTest.java
@@ -44,10 +44,10 @@ import org.apache.xml.security.signature.SignatureProperty;
import org.apache.xml.security.signature.SignedInfo;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
-import org.apache.xml.security.transforms.params.XPath2FilterContainer;
import org.apache.xml.security.transforms.params.XPathContainer;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.ElementProxy;
@@ -55,6 +55,7 @@ import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -66,13 +67,7 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class CreateSignatureTest {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(CreateSignatureTest.class);
-
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
- private KeyPair kp;
+ private final KeyPair kp;
public CreateSignatureTest() throws Exception {
org.apache.xml.security.Init.init();
@@ -118,17 +113,10 @@ public class CreateSignatureTest {
);
KeyStore ks = KeyStore.getInstance("JKS");
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis =
- new FileInputStream(BASEDIR + SEP
- + "src/test/resources/org/apache/xml/security/samples/input/keystore.jks"
- );
- } else {
- fis =
- new FileInputStream("src/test/resources/org/apache/xml/security/samples/input/keystore.jks");
+ try (FileInputStream fis = new FileInputStream(
+ resolveFile("src/test/resources/org/apache/xml/security/samples/input/keystore.jks"))) {
+ ks.load(fis, "xmlsecurity".toCharArray());
}
- ks.load(fis, "xmlsecurity".toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey("test", "xmlsecurity".toCharArray());
sig.sign(privateKey);
@@ -493,15 +481,7 @@ public class CreateSignatureTest {
}
private String doSignWithCert() throws Exception {
- KeyStore ks = KeyStore.getInstance("JKS");
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP +
- "src/test/resources/test.jks");
- } else {
- fis = new FileInputStream("src/test/resources/test.jks");
- }
- ks.load(fis, "changeit".toCharArray());
+ KeyStore ks = XmlSecTestEnvironment.getTestKeyStore();
PrivateKey privateKey = (PrivateKey) ks.getKey("mullan", "changeit".toCharArray());
Document doc = TestUtils.newDocument();
X509Certificate signingCert = (X509Certificate) ks.getCertificate("mullan");
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureXalanTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureXalanTest.java
index 254e6aa2..2e598c0c 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureXalanTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/CreateSignatureXalanTest.java
@@ -18,11 +18,18 @@
*/
package org.apache.xml.security.test.dom.signature;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
-import org.apache.xml.security.algorithms.SignatureAlgorithm;
-import org.apache.xml.security.c14n.Canonicalizer;
-import org.apache.xml.security.keys.KeyInfo;
-import org.apache.xml.security.signature.*;
+import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
@@ -34,35 +41,20 @@ import org.junit.jupiter.api.BeforeAll;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.security.*;
-
-import static org.junit.jupiter.api.Assertions.*;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Tests that create signatures that require Xalan for the here() function
*/
public class CreateSignatureXalanTest {
- private static final String CONFIG_FILE = "config-xalan.xml";
-
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(CreateSignatureXalanTest.class);
-
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
- private KeyPair kp;
+ private static final String CONFIG_FILE = "/config-xalan.xml";
@BeforeAll
public static void setup() {
System.setProperty("org.apache.xml.security.resource.config", CONFIG_FILE);
+ org.apache.xml.security.Init.init();
}
@AfterAll
@@ -70,11 +62,6 @@ public class CreateSignatureXalanTest {
System.clearProperty("org.apache.xml.security.resource.config");
}
- public CreateSignatureXalanTest() throws Exception {
- org.apache.xml.security.Init.init();
- kp = KeyPairGenerator.getInstance("RSA").genKeyPair();
- }
-
@org.junit.jupiter.api.Test
public void testXFilter2Signature() throws Exception {
Document doc = TestUtils.newDocument();
@@ -85,8 +72,7 @@ public class CreateSignatureXalanTest {
root.appendChild(doc.createTextNode("Some simple text\n"));
// Sign
- XMLSignature sig =
- new XMLSignature(doc, null, XMLSignature.ALGO_ID_SIGNATURE_DSA);
+ XMLSignature sig = new XMLSignature(doc, null, XMLSignature.ALGO_ID_SIGNATURE_DSA);
root.appendChild(sig.getElement());
Transforms transforms = new Transforms(doc);
@@ -99,17 +85,10 @@ public class CreateSignatureXalanTest {
sig.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);
KeyStore ks = KeyStore.getInstance("JKS");
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis =
- new FileInputStream(BASEDIR + SEP
- + "src/test/resources/org/apache/xml/security/samples/input/keystore.jks"
- );
- } else {
- fis =
- new FileInputStream("src/test/resources/org/apache/xml/security/samples/input/keystore.jks");
+ try (FileInputStream fis = new FileInputStream(
+ resolveFile("src/test/resources/org/apache/xml/security/samples/input/keystore.jks"))) {
+ ks.load(fis, "xmlsecurity".toCharArray());
}
- ks.load(fis, "xmlsecurity".toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey("test", "xmlsecurity".toCharArray());
sig.sign(privateKey);
@@ -128,82 +107,9 @@ public class CreateSignatureXalanTest {
xpath.setNamespaceContext(new DSNamespaceContext());
String expression = "//ds:Signature[1]";
- Element sigElement =
- (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
+ Element sigElement = (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
XMLSignature signature = new XMLSignature(sigElement, "");
assertTrue(signature.checkSignatureValue(ks.getCertificate("test").getPublicKey()));
}
-
- private String doSign() throws Exception {
- PrivateKey privateKey = kp.getPrivate();
- Document doc = TestUtils.newDocument();
- doc.appendChild(doc.createComment(" Comment before "));
- Element root = doc.createElementNS("", "RootElement");
-
- doc.appendChild(root);
- root.appendChild(doc.createTextNode("Some simple text\n"));
-
- Element canonElem =
- XMLUtils.createElementInSignatureSpace(doc, Constants._TAG_CANONICALIZATIONMETHOD);
- canonElem.setAttributeNS(
- null, Constants._ATT_ALGORITHM, Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS
- );
-
- SignatureAlgorithm signatureAlgorithm =
- new SignatureAlgorithm(doc, XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1);
- XMLSignature sig =
- new XMLSignature(doc, null, signatureAlgorithm.getElement(), canonElem);
-
- root.appendChild(sig.getElement());
- doc.appendChild(doc.createComment(" Comment after "));
- Transforms transforms = new Transforms(doc);
- transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
- transforms.addTransform(Transforms.TRANSFORM_C14N_WITH_COMMENTS);
- sig.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);
-
- sig.addKeyInfo(kp.getPublic());
- sig.sign(privateKey);
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
- XMLUtils.outputDOMc14nWithComments(doc, bos);
- return new String(bos.toByteArray());
- }
-
- private void doVerify(String signedXML, int expectedObjectCount) throws Exception {
- Document doc = null;
- try (InputStream is = new ByteArrayInputStream(signedXML.getBytes())) {
- doc = XMLUtils.read(is, false);
- }
-
- XPathFactory xpf = XPathFactory.newInstance();
- XPath xpath = xpf.newXPath();
- xpath.setNamespaceContext(new DSNamespaceContext());
-
- String expression = "//ds:Signature[1]";
- Element sigElement =
- (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
-
- XMLSignature signature = new XMLSignature(sigElement, "");
- KeyInfo ki = signature.getKeyInfo();
-
- if (ki == null) {
- throw new RuntimeException("No keyinfo");
- }
- PublicKey pk = signature.getKeyInfo().getPublicKey();
-
- if (pk == null) {
- throw new RuntimeException("No public key");
- }
- assertTrue(signature.checkSignatureValue(pk));
-
- assertEquals(expectedObjectCount, signature.getObjectLength());
- if (expectedObjectCount > 0) {
- for (int i = 0; i < expectedObjectCount; i++) {
- assertNotNull(signature.getObjectItem(i));
- }
- }
- }
-
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/ECDSASignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/ECDSASignatureTest.java
index d3e1d0a1..1818fa6c 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/ECDSASignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/ECDSASignatureTest.java
@@ -45,6 +45,7 @@ import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
@@ -55,7 +56,6 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue;
*/
public class ECDSASignatureTest {
- private static final String BASEDIR = System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
private static final String ECDSA_JKS =
"src/test/resources/org/apache/xml/security/samples/input/ecdsa.jks";
@@ -101,8 +101,7 @@ public class ECDSASignatureTest {
@org.junit.jupiter.api.Test
@org.junit.jupiter.api.Disabled
public void testTwo() throws Exception {
- File file =
- makeDataFile("src/test/resources/org/apache/xml/security/samples/input/ecdsaSignature.xml");
+ File file = resolveFile("src/test/resources/org/apache/xml/security/samples/input/ecdsaSignature.xml");
try (InputStream is = new FileInputStream(file)) {
doVerify(is);
}
@@ -111,7 +110,7 @@ public class ECDSASignatureTest {
@org.junit.jupiter.api.Test
@org.junit.jupiter.api.Disabled
public void testThree() throws Exception {
- File file = makeDataFile("src/test/resources/at/buergerkarte/testresp.xml");
+ File file = resolveFile("src/test/resources/at/buergerkarte/testresp.xml");
try (InputStream is = new FileInputStream(file)) {
doVerify(is);
}
@@ -204,13 +203,6 @@ public class ECDSASignatureTest {
}
}
- private File makeDataFile(String relPath) {
- if (BASEDIR != null && BASEDIR.length() != 0) {
- return new File(BASEDIR + SEP + relPath);
- } else {
- return new File(relPath);
- }
- }
/**
* DO NOT DELETE THIS COMMENTED OUT METHOD!
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/EDDSASignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/EDDSASignatureTest.java
index 3bfe74cc..2735ff99 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/EDDSASignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/EDDSASignatureTest.java
@@ -18,32 +18,33 @@
*/
package org.apache.xml.security.test.dom.signature;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.cert.X509Certificate;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
+
import org.apache.xml.security.algorithms.SignatureAlgorithm;
import org.apache.xml.security.c14n.Canonicalizer;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.dom.TestUtils;
+import org.apache.xml.security.test.javax.xml.crypto.dsig.EdDSATestAbstract;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
import org.junit.jupiter.api.Assertions;
import org.w3c.dom.Element;
-import javax.xml.crypto.test.dsig.EdDSATestAbstract;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.security.KeyStore;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.cert.X509Certificate;
-
/**
* Tests of the EDDSA Ed25519 and Ed448 signatures.
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java
index 744c2004..ab0f7920 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/HMACOutputLengthTest.java
@@ -21,14 +21,10 @@ package org.apache.xml.security.test.dom.signature;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;
import javax.crypto.SecretKey;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.Init;
import org.apache.xml.security.algorithms.MessageDigestAlgorithm;
import org.apache.xml.security.c14n.Canonicalizer;
@@ -38,20 +34,16 @@ import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
public class HMACOutputLengthTest {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger
- (HMACOutputLengthTest.class);
-
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
public HMACOutputLengthTest() throws Exception {
Init.init();
}
@@ -146,13 +138,10 @@ public class HMACOutputLengthTest {
}
private boolean validate(String data) throws Exception {
- File file =
- new File(BASEDIR + SEP + "src/test/resources" + SEP + "javax" + SEP + "xml"
- + SEP + "crypto" + SEP + "dsig" + SEP, data);
-
- Document doc = XMLUtils.read(new FileInputStream(file), false);
- NodeList nl =
- doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature");
+ File file = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "test", "javax", "xml",
+ "crypto", "dsig", data);
+ Document doc = XMLUtils.read(file, false);
+ NodeList nl = doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature");
if (nl.getLength() == 0) {
throw new Exception("Couldn't find signature Element");
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java
index ce49145b..cf1ce127 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.xml.security.test.dom.signature;
+import java.io.File;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PublicKey;
@@ -30,6 +31,8 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+
/**
* Test case contributed by Matthias Germann for testing that bug 43239 is
* fixed: "No installed provider supports this key" when checking a RSA
@@ -37,20 +40,17 @@ import org.w3c.dom.Node;
*/
public class InvalidKeyTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
static {
Init.init();
}
@org.junit.jupiter.api.Test
public void test() throws Exception {
- FileInputStream input = new FileInputStream(BASEDIR + SEP +
- "src/test/resources/org/apache/xml/security/samples/input/truststore.jks");
KeyStore trustStore = KeyStore.getInstance("JKS");
- trustStore.load(input, "testpw".toCharArray());
+ try (FileInputStream input = new FileInputStream(
+ resolveFile("src/test/resources/org/apache/xml/security/samples/input/truststore.jks"))) {
+ trustStore.load(input, "testpw".toCharArray());
+ }
try {
validate(trustStore.getCertificate("bedag-test").getPublicKey());
@@ -62,11 +62,8 @@ public class InvalidKeyTest {
}
private void validate(PublicKey pk) throws Exception {
- FileInputStream is = new FileInputStream(BASEDIR + SEP +
- "src/test/resources/org/apache/xml/security/samples/input/test-assertion.xml");
-
- Document e = XMLUtils.read(is, false);
-
+ File file = resolveFile("src/test/resources/org/apache/xml/security/samples/input/test-assertion.xml");
+ Document e = XMLUtils.read(file, false);
Node assertion = e.getFirstChild();
while (!(assertion instanceof Element)) {
assertion = assertion.getNextSibling();
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/KeyValueTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/KeyValueTest.java
index 0263b61c..eb70c9e7 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/KeyValueTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/KeyValueTest.java
@@ -20,24 +20,23 @@ package org.apache.xml.security.test.dom.signature;
import java.io.File;
-import java.io.FileInputStream;
import java.security.PublicKey;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.keys.content.KeyValue;
import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class KeyValueTest {
- private static final String BASEDIR = System.getProperty("basedir");
private static final String SEP = System.getProperty("file.separator");
static {
@@ -46,18 +45,12 @@ public class KeyValueTest {
@org.junit.jupiter.api.Test
public void testDSAPublicKey() throws Exception {
- File f = null;
- String filename =
+ String path =
"src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml";
- if (BASEDIR != null && BASEDIR.length() != 0) {
- f = new File(BASEDIR + SEP + filename);
- } else {
- f = new File(filename);
- }
- Document doc = XMLUtils.read(new FileInputStream(f), false);
+ File f = XmlSecTestEnvironment.resolveFile(path);
+ Document doc = XMLUtils.read(f, false);
NodeList nl = doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature");
- XMLSignature sig = new XMLSignature
- ((Element) nl.item(0), f.toURI().toURL().toString());
+ XMLSignature sig = new XMLSignature((Element) nl.item(0), f.toURI().toURL().toString());
KeyInfo ki = sig.getKeyInfo();
KeyValue kv = ki.itemKeyValue(0);
PublicKey pk = kv.getPublicKey();
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/NoKeyInfoTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/NoKeyInfoTest.java
index 73210894..cbee8626 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/NoKeyInfoTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/NoKeyInfoTest.java
@@ -20,42 +20,32 @@ package org.apache.xml.security.test.dom.signature;
import java.io.File;
-import java.io.FileInputStream;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.Init;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import static org.junit.jupiter.api.Assertions.assertNull;
public class NoKeyInfoTest {
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
static {
Init.init();
}
@org.junit.jupiter.api.Test
public void testNullKeyInfo() throws Exception {
- File f = null;
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml";
- if (BASEDIR != null && BASEDIR.length() != 0) {
- f = new File(BASEDIR + SEP + filename);
- } else {
- f = new File(filename);
- }
- Document doc = XMLUtils.read(new FileInputStream(f), false);
+ String filename = "src/test/resources/ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml";
+ File f = XmlSecTestEnvironment.resolveFile(filename);
+ Document doc = XMLUtils.read(f, false);
NodeList nl = doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature");
- XMLSignature sig = new XMLSignature
- ((Element) nl.item(0), f.toURI().toURL().toString());
+ XMLSignature sig = new XMLSignature((Element) nl.item(0), f.toURI().toURL().toString());
KeyInfo ki = sig.getKeyInfo();
assertNull(ki);
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/PreCalculatedDigestSignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/PreCalculatedDigestSignatureTest.java
index 1c9681a8..43635bdd 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/PreCalculatedDigestSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/PreCalculatedDigestSignatureTest.java
@@ -18,9 +18,23 @@
*/
package org.apache.xml.security.test.dom.signature;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.cert.X509Certificate;
+
+import javax.xml.parsers.ParserConfigurationException;
+
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureInput;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.TransformationException;
import org.apache.xml.security.transforms.Transforms;
@@ -38,17 +52,7 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.security.*;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -69,7 +73,7 @@ public class PreCalculatedDigestSignatureTest {
private static final char[] PASSWORD = "changeit".toCharArray();
private static final String ALIAS = "mullan";
- private String signatureFilePath;
+ private File signatureFile;
@TempDir
public Path testFolder;
@@ -79,15 +83,15 @@ public class PreCalculatedDigestSignatureTest {
@BeforeEach
public void setUp() throws Exception {
org.apache.xml.security.Init.init();
- signatureFilePath = getAbsolutePath("src/test/resources/org/apache/xml/security/samples/input/signatureWithExternalReference.xml");
- KeyStore keyStore = openKeyStore();
+ signatureFile = resolveFile("src/test/resources/org/apache/xml/security/samples/input/signatureWithExternalReference.xml");
+ KeyStore keyStore = XmlSecTestEnvironment.getTestKeyStore();
privateKey = (PrivateKey) keyStore.getKey(ALIAS, PASSWORD);
signingCert = (X509Certificate) keyStore.getCertificate(ALIAS);
}
@Test
public void validateSignatureWithCorrectDigestShouldBeValid() throws Exception {
- XMLSignature signature = openSignature(signatureFilePath);
+ XMLSignature signature = openSignature(signatureFile);
//Add resource resolver for the external document (test.txt) with the pre-calculated digest (valid for this test)
ExternalResourceResolver resolver = new ExternalResourceResolver(EXTERNAL_DOCUMENT_URI, PRE_CALCULATED_DIGEST);
signature.addResourceResolver(resolver);
@@ -97,7 +101,7 @@ public class PreCalculatedDigestSignatureTest {
@Test
public void validateSignatureWithWrongDigestShouldBeInvalid() throws Exception {
- XMLSignature signature = openSignature(signatureFilePath);
+ XMLSignature signature = openSignature(signatureFile);
//Add resource resolver for the external document (test.txt) with the pre-calculated digest (invalid for this test)
ExternalResourceResolver resolver = new ExternalResourceResolver(EXTERNAL_DOCUMENT_URI, "BjVs1oFu54LZwQuUA+kHgZApH0pIc8PGOoo0YrLrNUI=");
signature.addResourceResolver(resolver);
@@ -121,8 +125,8 @@ public class PreCalculatedDigestSignatureTest {
assertTrue(signature.checkSignatureValue(signingCert));
}
- private XMLSignature openSignature(String signatureFile) throws Exception {
- Document document = XMLUtils.read(new FileInputStream(new File(signatureFile)), false);
+ private XMLSignature openSignature(File signatureFile) throws Exception {
+ Document document = XMLUtils.read(new FileInputStream(signatureFile), false);
Element root = document.getDocumentElement();
Element signatureDocument = (Element) root.getFirstChild();
String baseURI = "";
@@ -176,33 +180,13 @@ public class PreCalculatedDigestSignatureTest {
}
}
- private KeyStore openKeyStore() throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException {
- FileInputStream fileInputStream = null;
- try {
- KeyStore keyStore = KeyStore.getInstance("JKS");
- fileInputStream = new FileInputStream(getAbsolutePath("src/test/resources/test.jks"));
- keyStore.load(fileInputStream, PASSWORD);
- return keyStore;
- } finally {
- fileInputStream.close();
- }
- }
-
- private String getAbsolutePath(String path) {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- path = basedir + "/" + path;
- }
- return path;
- }
-
/**
* Resolves external resources with pre-calculated digest.
*/
public static class ExternalResourceResolver extends ResourceResolverSpi {
private final String externalDocumentUri;
- private String preCalculatedDigest;
+ private final String preCalculatedDigest;
/**
* Constructor for resolving external resources with pre-calculated digest.
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/ProcessingInstructionTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/ProcessingInstructionTest.java
index 8a54b2cc..7491d71e 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/ProcessingInstructionTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/ProcessingInstructionTest.java
@@ -31,14 +31,16 @@ import javax.xml.xpath.XPathFactory;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xml.security.test.dom.DSNamespaceContext;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
import org.apache.xml.security.utils.XMLUtils;
import org.apache.xml.security.utils.resolver.ResourceResolverContext;
import org.apache.xml.security.utils.resolver.ResourceResolverException;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
/**
* A test-case for Bugzilla bug 45744 - "XPath transform and xml-stylesheet".
@@ -49,21 +51,16 @@ public class ProcessingInstructionTest {
org.apache.xml.security.Init.init();
}
- private static String dir;
+ private static File dir;
public ProcessingInstructionTest() {
- String base = System.getProperty("basedir") == null
- ? "./" : System.getProperty("basedir");
- String fs = System.getProperty("file.separator");
- dir = base + fs + "src/test/resources" + fs + "org" + fs + "apache" + fs + "xml" +
- fs + "security" + fs + "testcases" + fs;
+ dir = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "testcases");
}
@org.junit.jupiter.api.Test
public void testProcessingInstruction() throws Exception {
- String signatureFileName = dir + "upp_sign.xml";
- File f = new File(signatureFileName);
- Document doc = XMLUtils.read(new FileInputStream(f), false);
+ File f = new File(dir, "upp_sign.xml");
+ Document doc = XMLUtils.read(f, false);
Node obj =
doc.getElementsByTagNameNS("http://uri.etsi.org/01903/v1.3.2#", "QualifyingProperties").item(0);
@@ -117,8 +114,7 @@ public class ProcessingInstructionTest {
try {
URI uriNew = getNewURI(context.uriToResolve, context.baseUri);
- FileInputStream inputStream =
- new FileInputStream(dir + "out.xml");
+ FileInputStream inputStream = new FileInputStream(new File(dir, "out.xml"));
XMLSignatureInput result = new XMLSignatureInput(inputStream);
result.setSourceURI(uriNew.toString());
@@ -133,7 +129,7 @@ public class ProcessingInstructionTest {
@Override
public boolean engineCanResolveURI(ResourceResolverContext context) {
- return !(context.uriToResolve == null || !"out.xml".equals(context.uriToResolve));
+ return "out.xml".equals(context.uriToResolve);
}
private static URI getNewURI(String uri, String baseURI) throws URISyntaxException {
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java b/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java
index 9e16dac0..d104c1bf 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java
@@ -40,9 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
*/
public class Santuario499Test {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(Santuario499Test.class);
-
static {
Init.init();
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/SignatureReferenceTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/SignatureReferenceTest.java
index 1c65f89b..bec03970 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/SignatureReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/SignatureReferenceTest.java
@@ -19,7 +19,6 @@
package org.apache.xml.security.test.dom.signature;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
@@ -33,8 +32,6 @@ import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import org.apache.xml.security.Init;
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.keys.KeyInfo;
@@ -46,6 +43,7 @@ import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xml.security.signature.reference.ReferenceData;
import org.apache.xml.security.signature.reference.ReferenceNodeSetData;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
@@ -56,6 +54,8 @@ import org.apache.xml.security.utils.resolver.ResourceResolverContext;
import org.apache.xml.security.utils.resolver.ResourceResolverException;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
import org.apache.xml.security.utils.resolver.implementations.ResolverXPointer;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -71,12 +71,6 @@ import static org.junit.jupiter.api.Assertions.fail;
public class SignatureReferenceTest {
public static final String DS_NS = "http://www.w3.org/2000/09/xmldsig#";
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- public static final String KEYSTORE_DIRECTORY = BASEDIR + "/src/test/resources/";
- public static final String KEYSTORE_PASSWORD_STRING = "changeit";
- public static final char[] KEYSTORE_PASSWORD = KEYSTORE_PASSWORD_STRING.toCharArray();
-
public SignatureReferenceTest() throws Exception {
Init.init();
ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, "ds");
@@ -87,7 +81,7 @@ public class SignatureReferenceTest {
Document doc = getOriginalDocument();
XMLSignature signature = signDocument(doc);
- PublicKey pubKey = getPublicKey();
+ PublicKey pubKey = getPublicKey(XmlSecTestEnvironment.getTestKeyStore());
assertTrue(signature.checkSignatureValue(pubKey));
// Check the reference(s)
@@ -192,22 +186,8 @@ public class SignatureReferenceTest {
assertFalse(verifiedReferences.get(0).getManifestReferences().get(0).isValid());
}
- /**
- * Loads the 'localhost' keystore from the test keystore.
- *
- * @return test keystore.
- * @throws Exception
- */
- private KeyStore getKeyStore() throws Exception {
- KeyStore ks = KeyStore.getInstance("JKS");
- InputStream ksis = new FileInputStream(KEYSTORE_DIRECTORY + "test.jks");
- ks.load(ksis, KEYSTORE_PASSWORD);
- ksis.close();
- return ks;
- }
- private PublicKey getPublicKey() throws Exception {
- KeyStore keyStore = getKeyStore();
+ private PublicKey getPublicKey(KeyStore keyStore) throws Exception {
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
@@ -218,13 +198,12 @@ public class SignatureReferenceTest {
return null;
}
- private PrivateKey getPrivateKey() throws Exception {
- KeyStore keyStore = getKeyStore();
+ private PrivateKey getPrivateKey(KeyStore keyStore) throws Exception {
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
if (keyStore.isKeyEntry(alias)) {
- return (PrivateKey) keyStore.getKey(alias, KEYSTORE_PASSWORD);
+ return (PrivateKey) keyStore.getKey(alias, XmlSecTestEnvironment.TEST_KS_PASSWORD.toCharArray());
}
}
return null;
@@ -251,9 +230,9 @@ public class SignatureReferenceTest {
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
transforms.addTransform(Transforms.TRANSFORM_C14N_WITH_COMMENTS);
sig.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);
-
- sig.addKeyInfo(getPublicKey());
- sig.sign(getPrivateKey());
+ KeyStore keyStore = XmlSecTestEnvironment.getTestKeyStore();
+ sig.addKeyInfo(getPublicKey(keyStore));
+ sig.sign(getPrivateKey(keyStore));
return sig;
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/SignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/SignatureTest.java
index 1c3a7287..2cf66cdd 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/SignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/SignatureTest.java
@@ -18,10 +18,6 @@
*/
package org.apache.xml.security.test.dom.signature;
-import java.io.InputStream;
-
-
-import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Provider;
@@ -31,6 +27,7 @@ import java.util.Enumeration;
import org.apache.xml.security.Init;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
import org.apache.xml.security.utils.Constants;
@@ -44,16 +41,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class SignatureTest {
public static final String DS_NS = "http://www.w3.org/2000/09/xmldsig#";
-
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- public static final String KEYSTORE_DIRECTORY = BASEDIR + "/src/test/resources/";
- public static final String KEYSTORE_PASSWORD_STRING = "changeit";
- public static final char[] KEYSTORE_PASSWORD = KEYSTORE_PASSWORD_STRING.toCharArray();
+ private final KeyStore keyStore;
public SignatureTest() throws Exception {
Init.init();
ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, "ds");
+ keyStore = XmlSecTestEnvironment.getTestKeyStore();
}
@org.junit.jupiter.api.Test
@@ -144,14 +137,15 @@ public class SignatureTest {
public static class VerifyingRunnable implements Runnable {
public volatile Throwable throwable;
public volatile boolean result;
- private XMLSignature signature;
- private PublicKey pubKey;
+ private final XMLSignature signature;
+ private final PublicKey pubKey;
public VerifyingRunnable(XMLSignature signature, PublicKey pubKey) {
this.signature = signature;
this.pubKey = pubKey;
}
+ @Override
public void run() {
try {
result = signature.checkSignatureValue(pubKey);
@@ -161,22 +155,7 @@ public class SignatureTest {
}
}
- /**
- * Loads the 'localhost' keystore from the test keystore.
- *
- * @return test keystore.
- * @throws Exception
- */
- private KeyStore getKeyStore() throws Exception {
- KeyStore ks = KeyStore.getInstance("JKS");
- InputStream ksis = new FileInputStream(KEYSTORE_DIRECTORY + "test.jks");
- ks.load(ksis, KEYSTORE_PASSWORD);
- ksis.close();
- return ks;
- }
-
private PublicKey getPublicKey() throws Exception {
- KeyStore keyStore = getKeyStore();
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
@@ -188,12 +167,11 @@ public class SignatureTest {
}
private PrivateKey getPrivateKey() throws Exception {
- KeyStore keyStore = getKeyStore();
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
if (keyStore.isKeyEntry(alias)) {
- return (PrivateKey) keyStore.getKey(alias, KEYSTORE_PASSWORD);
+ return (PrivateKey) keyStore.getKey(alias, XmlSecTestEnvironment.TEST_KS_PASSWORD.toCharArray());
}
}
return null;
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/UnknownAlgoSignatureTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/UnknownAlgoSignatureTest.java
index 65f8a207..b122f1f5 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/UnknownAlgoSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/UnknownAlgoSignatureTest.java
@@ -32,11 +32,13 @@ import javax.xml.xpath.XPathFactory;
import org.apache.xml.security.Init;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -49,18 +51,10 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class UnknownAlgoSignatureTest {
- private static final String BASEDIR = System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
-
protected static final String KEYSTORE_TYPE = "JKS";
-
- protected static final String KEYSTORE_FILE =
- "src/test/resources/org/apache/xml/security/samples/input/keystore.jks";
-
+ protected static final String KEYSTORE_FILE = "src/test/resources/org/apache/xml/security/samples/input/keystore.jks";
protected static final String CERT_ALIAS = "test";
-
- protected static final String SIGNATURE_SOURCE_PATH =
- "src/test/resources/org/apache/xml/security/temp/signature";
+ protected static final String SIGNATURE_SOURCE_PATH = "src/test/resources/org/apache/xml/security/temp/signature";
protected PublicKey publicKey;
@@ -69,14 +63,10 @@ public class UnknownAlgoSignatureTest {
}
public UnknownAlgoSignatureTest() throws Exception {
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + SEP + KEYSTORE_FILE);
- } else {
- fis = new FileInputStream(KEYSTORE_FILE);
- }
KeyStore keyStore = KeyStore.getInstance(KEYSTORE_TYPE);
- keyStore.load(fis, null);
+ try (FileInputStream fis = new FileInputStream(resolveFile(KEYSTORE_FILE))) {
+ keyStore.load(fis, null);
+ }
X509Certificate cert = (X509Certificate) keyStore.getCertificate(CERT_ALIAS);
publicKey = cert.getPublicKey();
}
@@ -127,12 +117,7 @@ public class UnknownAlgoSignatureTest {
}
private XMLSignature unmarshalXMLSignature(String fileName) throws Exception {
- File file = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- file = new File(BASEDIR + SEP + SIGNATURE_SOURCE_PATH, fileName);
- } else {
- file = new File(SIGNATURE_SOURCE_PATH, fileName);
- }
+ File file = XmlSecTestEnvironment.resolveFile(SIGNATURE_SOURCE_PATH, fileName);
Document doc = getDocument(file);
XPathFactory xpf = XPathFactory.newInstance();
@@ -140,13 +125,12 @@ public class UnknownAlgoSignatureTest {
xpath.setNamespaceContext(new DSNamespaceContext());
String expression = "//ds:Signature[1]";
- Element sigElement =
- (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
+ Element sigElement = (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
return new XMLSignature(sigElement, file.toURI().toURL().toString());
}
public static Document getDocument(File file) throws Exception {
- return XMLUtils.read(new FileInputStream(file), false);
+ return XMLUtils.read(file, false);
}
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/X509DataTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/X509DataTest.java
index 7138f1d5..4ec469b9 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/X509DataTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/X509DataTest.java
@@ -29,6 +29,7 @@ import java.security.cert.X509Certificate;
import org.apache.xml.security.Init;
import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
@@ -40,9 +41,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
public class X509DataTest {
- private static final String BASEDIR = System.getProperty("basedir");
-
- KeyStore ks = null;
+ KeyStore ks;
@org.junit.jupiter.api.Test
public void testAddX509SubjectName() throws Exception {
@@ -90,18 +89,11 @@ public class X509DataTest {
if (ks != null) {
return ks;
}
- String keystoreType = "JKS";
String keystoreFile = "src/test/resources/org/apache/xml/security/samples/input/keystore.jks";
- String keystorePass = "xmlsecurity";
- ks = KeyStore.getInstance(keystoreType);
- FileInputStream fis = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- fis = new FileInputStream(BASEDIR + "/" + keystoreFile);
- } else {
- fis = new FileInputStream(keystoreFile);
+ ks = KeyStore.getInstance("JKS");
+ try (FileInputStream fis = new FileInputStream(XmlSecTestEnvironment.resolveFile(keystoreFile))) {
+ ks.load(fis, "xmlsecurity".toCharArray());
}
- //load the keystore
- ks.load(fis, keystorePass.toCharArray());
return ks;
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/XMLSignatureInputTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/XMLSignatureInputTest.java
index 36615e2f..15beb151 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/XMLSignatureInputTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/XMLSignatureInputTest.java
@@ -45,9 +45,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class XMLSignatureInputTest {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(XMLSignatureInputTest.class);
-
static final String _octetStreamTextInput = "Kleiner Test";
static final String _nodeSetInput1 =
"<?xml version=\"1.0\"?>\n"
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/XPointerResourceResolver.java b/src/test/java/org/apache/xml/security/test/dom/signature/XPointerResourceResolver.java
index 8fd92790..8a792737 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/XPointerResourceResolver.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/XPointerResourceResolver.java
@@ -49,7 +49,7 @@ public class XPointerResourceResolver extends ResourceResolverSpi {
private static final String XP_OPEN = "xpointer(";
private static final String XNS_OPEN = "xmlns(";
- private Node baseNode;
+ private final Node baseNode;
public XPointerResourceResolver(Node baseNode) {
this.baseNode = baseNode;
@@ -59,7 +59,7 @@ public class XPointerResourceResolver extends ResourceResolverSpi {
public boolean engineCanResolveURI(ResourceResolverContext context) {
String v = context.uriToResolve;
- if (v == null || v.length() <= 0) {
+ if (v == null || v.isEmpty()) {
return false;
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/signature/XmlSecTest.java b/src/test/java/org/apache/xml/security/test/dom/signature/XmlSecTest.java
index cb6b6031..e1cf8c84 100644
--- a/src/test/java/org/apache/xml/security/test/dom/signature/XmlSecTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/signature/XmlSecTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.xml.security.test.dom.signature;
-import java.io.FileInputStream;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
@@ -34,6 +33,7 @@ import org.apache.xml.security.Init;
import org.apache.xml.security.algorithms.MessageDigestAlgorithm;
import org.apache.xml.security.c14n.Canonicalizer;
import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.dom.TestUtils;
import org.apache.xml.security.transforms.Transforms;
@@ -52,13 +52,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class XmlSecTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger
- (XmlSecTest.class.getName());
-
@org.junit.jupiter.api.Test
public void testCheckXmlSignatureSoftwareStack() throws Exception {
checkXmlSignatureSoftwareStack(false);
@@ -89,12 +82,7 @@ public class XmlSecTest {
PublicKey publicKey = null;
X509Certificate signingCert = null;
if (cert) {
- // get key & self-signed certificate from keystore
- String fs = System.getProperty("file.separator");
- FileInputStream fis =
- new FileInputStream(BASEDIR + fs + "src/test/resources" + fs + "test.jks");
- KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(fis, "changeit".toCharArray());
+ KeyStore ks = XmlSecTestEnvironment.getTestKeyStore();
signingCert = (X509Certificate) ks.getCertificate("mullan");
publicKey = signingCert.getPublicKey();
privateKey = (PrivateKey) ks.getKey("mullan", "changeit".toCharArray());
diff --git a/src/test/java/org/apache/xml/security/test/dom/transforms/implementations/TransformXSLTTest.java b/src/test/java/org/apache/xml/security/test/dom/transforms/implementations/TransformXSLTTest.java
index 7394461a..400ed345 100644
--- a/src/test/java/org/apache/xml/security/test/dom/transforms/implementations/TransformXSLTTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/transforms/implementations/TransformXSLTTest.java
@@ -19,7 +19,6 @@
package org.apache.xml.security.test.dom.transforms.implementations;
import java.io.File;
-import java.io.FileInputStream;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
@@ -33,20 +32,14 @@ import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+
public class TransformXSLTTest {
- private static final String BASEDIR =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- private static final String SEP = System.getProperty("file.separator");
- private static final String SOURCE_PATH =
- "src/test/resources/com/phaos/phaos-xmldsig-three/";
- private static final String SIGNATURE_FILE =
- "signature-rsa-detached-xslt-transform.xml";
+ private static final String SOURCE_PATH = "src/test/resources/com/phaos/phaos-xmldsig-three";
+ private static final String SIGNATURE_FILE = "signature-rsa-detached-xslt-transform.xml";
private static final String STYLESHEET_FILE = "document-stylesheet.xml";
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(TransformXSLTTest.class);
-
static {
org.apache.xml.security.Init.init();
}
@@ -57,34 +50,22 @@ public class TransformXSLTTest {
*/
@org.junit.jupiter.api.Test
public void test1() throws Exception {
- File file1 = null;
- File file2 = null;
- if (BASEDIR != null && BASEDIR.length() != 0) {
- file1 = new File(BASEDIR + SEP + SOURCE_PATH, SIGNATURE_FILE);
- file2 = new File(BASEDIR + SEP + SOURCE_PATH, STYLESHEET_FILE);
- } else {
- file1 = new File(SOURCE_PATH, SIGNATURE_FILE);
- file1 = new File(SOURCE_PATH, STYLESHEET_FILE);
- }
- Document doc1 = getDocument(file1);
- Document doc2 = getDocument(file2);
+ Document doc1 = getDocument(SIGNATURE_FILE);
+ Document doc2 = getDocument(STYLESHEET_FILE);
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
xpath.setNamespaceContext(new DSNamespaceContext());
String expression = "//ds:Transform[1]";
- Element transformEl =
- (Element) xpath.evaluate(expression, doc1, XPathConstants.NODE);
-
- Transform transform =
- new Transform(doc1, Transforms.TRANSFORM_XSLT, transformEl.getChildNodes());
+ Element transformEl = (Element) xpath.evaluate(expression, doc1, XPathConstants.NODE);
+ Transform transform = new Transform(doc1, Transforms.TRANSFORM_XSLT, transformEl.getChildNodes());
transform.performTransform(new XMLSignatureInput(doc2), false);
}
- private static Document getDocument(File file) throws Exception {
- return XMLUtils.read(new FileInputStream(file), false);
+ private static Document getDocument(String fileName) throws Exception {
+ return XMLUtils.read(new File(resolveFile(SOURCE_PATH), fileName), false);
}
}
diff --git a/src/test/java/org/apache/xml/security/test/dom/utils/JDKXPathFactoryTest.java b/src/test/java/org/apache/xml/security/test/dom/utils/JDKXPathFactoryTest.java
index e27400df..7328373d 100644
--- a/src/test/java/org/apache/xml/security/test/dom/utils/JDKXPathFactoryTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/utils/JDKXPathFactoryTest.java
@@ -58,10 +58,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class JDKXPathFactoryTest {
- static org.slf4j.Logger LOG =
- org.slf4j.LoggerFactory.getLogger(JDKXPathFactoryTest.class);
-
- private KeyPair kp;
+ private final KeyPair kp;
public JDKXPathFactoryTest() throws Exception {
// org.apache.xml.security.Init.init();
diff --git a/src/test/java/org/apache/xml/security/test/dom/utils/resolver/OfflineResolver.java b/src/test/java/org/apache/xml/security/test/dom/utils/resolver/OfflineResolver.java
index 62577cda..97db09cf 100644
--- a/src/test/java/org/apache/xml/security/test/dom/utils/resolver/OfflineResolver.java
+++ b/src/test/java/org/apache/xml/security/test/dom/utils/resolver/OfflineResolver.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.xml.security.signature.XMLSignatureInput;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.resolver.ResourceResolverContext;
import org.apache.xml.security.utils.resolver.ResourceResolverException;
import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
@@ -58,8 +59,7 @@ public class OfflineResolver extends ResourceResolverSpi {
_uriMap = new HashMap<>();
_mimeMap = new HashMap<>();
- String basedir =
- System.getProperty("basedir") == null ? "./": System.getProperty("basedir") + "/";
+ String basedir = XmlSecTestEnvironment.resolvePath(".") + "/";
OfflineResolver.register(
"http://www.w3.org/TR/xml-stylesheet",
@@ -101,7 +101,6 @@ public class OfflineResolver extends ResourceResolverSpi {
throws ResourceResolverException {
try {
String URI = context.uriToResolve;
-
if (OfflineResolver._uriMap.containsKey(URI)) {
String newURI = OfflineResolver._uriMap.get(URI);
@@ -117,17 +116,11 @@ public class OfflineResolver extends ResourceResolverSpi {
result.setMIMEType(OfflineResolver._mimeMap.get(URI));
return result;
- } else {
- Object[] exArgs = {"The URI " + URI + " is not configured for offline work" };
-
- throw new ResourceResolverException(
- "generic.EmptyMessage", exArgs, context.uriToResolve, context.baseUri
- );
}
+ Object[] exArgs = {"The URI " + URI + " is not configured for offline work" };
+ throw new ResourceResolverException("generic.EmptyMessage", exArgs, context.uriToResolve, context.baseUri);
} catch (IOException ex) {
- throw new ResourceResolverException(
- ex, context.uriToResolve, context.baseUri, "generic.EmptyMessage"
- );
+ throw new ResourceResolverException(ex, context.uriToResolve, context.baseUri, "generic.EmptyMessage");
}
}
@@ -143,18 +136,15 @@ public class OfflineResolver extends ResourceResolverSpi {
return false;
}
- URI uriNew = null;
try {
- uriNew = getNewURI(context.uriToResolve, context.baseUri);
+ URI uriNew = getNewURI(context.uriToResolve, context.baseUri);
if ("http".equals(uriNew.getScheme())) {
LOG.debug("I state that I can resolve " + uriNew.toString());
return true;
}
-
} catch (URISyntaxException ex) {
//
}
-
return false;
}
@@ -172,7 +162,7 @@ public class OfflineResolver extends ResourceResolverSpi {
private static URI getNewURI(String uri, String baseURI) throws URISyntaxException {
URI newUri = null;
- if (baseURI == null || baseURI.length() == 0) {
+ if (baseURI == null || baseURI.isEmpty()) {
newUri = new URI(uri);
} else {
newUri = new URI(baseURI).resolve(uri);
@@ -180,8 +170,7 @@ public class OfflineResolver extends ResourceResolverSpi {
// if the URI contains a fragment, ignore it
if (newUri.getFragment() != null) {
- URI uriNewNoFrag =
- new URI(newUri.getScheme(), newUri.getSchemeSpecificPart(), null);
+ URI uriNewNoFrag = new URI(newUri.getScheme(), newUri.getSchemeSpecificPart(), null);
return uriNewNoFrag;
}
return newUri;
diff --git a/src/test/java/org/apache/xml/security/test/dom/utils/resolver/ResourceResolverTest.java b/src/test/java/org/apache/xml/security/test/dom/utils/resolver/ResourceResolverTest.java
index 192585b0..35d669d3 100644
--- a/src/test/java/org/apache/xml/security/test/dom/utils/resolver/ResourceResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/dom/utils/resolver/ResourceResolverTest.java
@@ -28,6 +28,7 @@ import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFiles
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -83,8 +84,7 @@ public class ResourceResolverTest {
public void testLocalFileWithEmptyBaseURI() throws Exception {
Document doc = TestUtils.newDocument();
Attr uriAttr = doc.createAttribute("URI");
- String basedir = System.getProperty("basedir");
- String file = new File(basedir, "pom.xml").toURI().toString();
+ String file = resolveFile("pom.xml").toURI().toString();
uriAttr.setValue(file);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
@@ -102,8 +102,7 @@ public class ResourceResolverTest {
public void testIsSafeURIToResolveFile() throws Exception {
Document doc = TestUtils.newDocument();
Attr uriAttr = doc.createAttribute("URI");
- String basedir = System.getProperty("basedir");
- String file = new File(basedir, "pom.xml").toURI().toString();
+ String file = resolveFile("pom.xml").toURI().toString();
uriAttr.setValue(file);
ResourceResolverContext resolverContext =
@@ -115,8 +114,7 @@ public class ResourceResolverTest {
public void testIsSafeURIToResolveFileBaseURI() throws Exception {
Document doc = TestUtils.newDocument();
Attr uriAttr = doc.createAttribute("URI");
- String basedir = System.getProperty("basedir");
- String file = new File(basedir, "pom.xml").toURI().toString();
+ String file = resolveFile("pom.xml").toURI().toString();
uriAttr.setValue("xyz");
ResourceResolverContext resolverContext =
diff --git a/src/test/java/org/apache/xml/security/test/dom/xalan/XalanXPathAPI.java b/src/test/java/org/apache/xml/security/test/dom/xalan/XalanXPathAPI.java
index 69b6e0fa..f5fb9914 100644
--- a/src/test/java/org/apache/xml/security/test/dom/xalan/XalanXPathAPI.java
+++ b/src/test/java/org/apache/xml/security/test/dom/xalan/XalanXPathAPI.java
@@ -73,6 +73,7 @@ class XalanXPathAPI implements XPathAPI {
*
* @throws TransformerException
*/
+ @Override
public NodeList selectNodeList(
Node contextNode, Node xpathnode, String str, Node namespaceNode
) throws TransformerException {
@@ -91,6 +92,7 @@ class XalanXPathAPI implements XPathAPI {
* @param str The XPath expression
* @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces.
*/
+ @Override
public boolean evaluate(Node contextNode, Node xpathnode, String str, Node namespaceNode)
throws TransformerException {
XObject object = eval(contextNode, xpathnode, str, namespaceNode);
@@ -100,6 +102,7 @@ class XalanXPathAPI implements XPathAPI {
/**
* Clear any context information from this object
*/
+ @Override
public void clear() {
xpathStr = null;
xpath = null;
@@ -150,7 +153,7 @@ class XalanXPathAPI implements XPathAPI {
Constructor<?> constructor = XPath.class.getConstructor(classes);
xpath = (XPath) constructor.newInstance(objects);
} catch (Exception ex) {
- LOG.debug(ex.getMessage(), ex);
+ throw new IllegalStateException("Could not construct xpath for " + str, ex);
}
if (xpath == null) {
xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null);
diff --git a/src/test/java/javax/xml/crypto/test/KeySelectorExceptionTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorExceptionTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/KeySelectorExceptionTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorExceptionTest.java
index 87063ce9..bef3f0af 100644
--- a/src/test/java/javax/xml/crypto/test/KeySelectorExceptionTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorExceptionTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test;
+package org.apache.xml.security.test.javax.xml.crypto;
import java.io.ByteArrayOutputStream;
diff --git a/src/test/java/javax/xml/crypto/test/KeySelectorTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/KeySelectorTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorTest.java
index c404da92..cf0bb96f 100644
--- a/src/test/java/javax/xml/crypto/test/KeySelectorTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectorTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test;
+package org.apache.xml.security.test.javax.xml.crypto;
import java.util.*;
diff --git a/src/test/java/javax/xml/crypto/test/KeySelectors.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectors.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/KeySelectors.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectors.java
index 2f3d7742..f1b642ef 100644
--- a/src/test/java/javax/xml/crypto/test/KeySelectors.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/KeySelectors.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test;
+package org.apache.xml.security.test.javax.xml.crypto;
import java.io.*;
import java.security.*;
diff --git a/src/test/java/javax/xml/crypto/test/OctetStreamDataTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/OctetStreamDataTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/OctetStreamDataTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/OctetStreamDataTest.java
index 4846328c..a8fc2634 100644
--- a/src/test/java/javax/xml/crypto/test/OctetStreamDataTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/OctetStreamDataTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test;
+package org.apache.xml.security.test.javax.xml.crypto;
import java.io.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/AppA.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppA.java
similarity index 94%
rename from src/test/java/javax/xml/crypto/test/dsig/AppA.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppA.java
index c7db63f4..79f26a96 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/AppA.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppA.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.security.Security;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/AppB.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppB.java
similarity index 95%
rename from src/test/java/javax/xml/crypto/test/dsig/AppB.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppB.java
index b99b302d..b649e3ca 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/AppB.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/AppB.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.security.Provider;
import java.security.Security;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/Baltimore18Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore18Test.java
similarity index 90%
rename from src/test/java/javax/xml/crypto/test/dsig/Baltimore18Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore18Test.java
index fc7dc687..4d83b36a 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/Baltimore18Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore18Test.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
@@ -28,7 +28,9 @@ import java.security.cert.CertificateException;
import javax.xml.crypto.KeySelector;
import javax.xml.crypto.URIDereferencer;
-import javax.xml.crypto.test.KeySelectors;
+
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -39,9 +41,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class Baltimore18Test {
- private File dir;
- private KeySelector cks;
- private URIDereferencer ud;
+ private final File dir;
+ private final KeySelector cks;
+ private final URIDereferencer ud;
static {
Security.insertProviderAt
@@ -49,11 +51,7 @@ public class Baltimore18Test {
}
public Baltimore18Test() throws CertificateException {
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- String fs = System.getProperty("file.separator");
- dir = new File(base + fs + "src/test/resources" + fs + "ie" +
- fs + "baltimore" + fs + "merlin-examples",
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
"merlin-xmldsig-eighteen");
cks = new KeySelectors.CollectionKeySelector(dir);
ud = new LocalHttpCacheURIDereferencer();
diff --git a/src/test/java/javax/xml/crypto/test/dsig/Baltimore23Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23Test.java
similarity index 95%
rename from src/test/java/javax/xml/crypto/test/dsig/Baltimore23Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23Test.java
index 8432a2cc..4368590e 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/Baltimore23Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23Test.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
@@ -29,7 +29,8 @@ import javax.xml.crypto.KeySelector;
import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.dsig.XMLSignatureException;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -42,7 +43,7 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class Baltimore23Test {
- private File dir;
+ private final File dir;
private final URIDereferencer ud;
static {
@@ -51,11 +52,7 @@ public class Baltimore23Test {
}
public Baltimore23Test() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs
- + "ie" + fs + "baltimore" + fs + "merlin-examples",
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
"merlin-xmldsig-twenty-three");
ud = new LocalHttpCacheURIDereferencer();
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/Baltimore23XalanTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23XalanTest.java
similarity index 75%
rename from src/test/java/javax/xml/crypto/test/dsig/Baltimore23XalanTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23XalanTest.java
index 2bd744c0..b85309a4 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/Baltimore23XalanTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Baltimore23XalanTest.java
@@ -19,18 +19,20 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-
-import javax.xml.crypto.URIDereferencer;
import java.io.File;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.Security;
+import javax.xml.crypto.URIDereferencer;
+
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -43,12 +45,11 @@ public class Baltimore23XalanTest {
private static final String CONFIG_FILE = "config-xalan.xml";
- private File dir;
+ private final File dir;
private final URIDereferencer ud;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
@BeforeAll
@@ -62,11 +63,7 @@ public class Baltimore23XalanTest {
}
public Baltimore23XalanTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs
- + "ie" + fs + "baltimore" + fs + "merlin-examples",
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
"merlin-xmldsig-twenty-three");
ud = new LocalHttpCacheURIDereferencer();
}
@@ -82,12 +79,7 @@ public class Baltimore23XalanTest {
}
String file = "signature.xml";
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- String keystore = base + fs + "src/test/resources" + fs +
- "ie" + fs + "baltimore" + fs + "merlin-examples" + fs +
- "merlin-xmldsig-twenty-three" + fs + "certs" + fs + "xmldsig.jks";
+ File keystore = XmlSecTestEnvironment.resolveFile(dir.toPath(), "certs", "xmldsig.jks");
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(keystore), "changeit".toCharArray());
diff --git a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreExcC14n1Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreExcC14n1Test.java
similarity index 66%
rename from src/test/java/javax/xml/crypto/test/dsig/BaltimoreExcC14n1Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreExcC14n1Test.java
index 275fa013..3535f84a 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreExcC14n1Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreExcC14n1Test.java
@@ -19,13 +19,14 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -36,29 +37,22 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class BaltimoreExcC14n1Test {
- private SignatureValidator validator;
+ private final SignatureValidator validator;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public BaltimoreExcC14n1Test() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- base += fs + "src/test/resources" + fs + "ie" +
- fs + "baltimore" + fs + "merlin-examples";
- validator = new SignatureValidator(new File
- (base, "merlin-exc-c14n-one"));
+ File base = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
+ "merlin-exc-c14n-one");
+ validator = new SignatureValidator(base);
}
@org.junit.jupiter.api.Test
public void testExcSignature() throws Exception {
String file = "exc-signature.xml";
-
- boolean coreValidity = validator.validate
- (file, new KeySelectors.KeyValueKeySelector());
+ boolean coreValidity = validator.validate(file, new KeySelectors.KeyValueKeySelector());
assertTrue(coreValidity, "Signature failed core validation");
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreIaik2Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreIaik2Test.java
similarity index 72%
rename from src/test/java/javax/xml/crypto/test/dsig/BaltimoreIaik2Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreIaik2Test.java
index 26433be3..4cf75a94 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreIaik2Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreIaik2Test.java
@@ -19,14 +19,14 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
-
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
@@ -39,21 +39,16 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class BaltimoreIaik2Test {
- private SignatureValidator validator;
- private File dir;
+ private final SignatureValidator validator;
+ private final File dir;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
public BaltimoreIaik2Test() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs +
- "ie" + fs + "baltimore" + fs + "merlin-examples",
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
"ec-merlin-iaikTests-two");
validator = new SignatureValidator(dir);
}
@@ -61,8 +56,7 @@ public class BaltimoreIaik2Test {
@org.junit.jupiter.api.Test
public void testSignature() throws Exception {
String file = "signature.xml";
- boolean coreValidity = validator.validate
- (file, new KeySelectors.KeyValueKeySelector());
+ boolean coreValidity = validator.validate(file, new KeySelectors.KeyValueKeySelector());
assertTrue(coreValidity, "Signature failed core validation");
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreXPathFilter2ThreeTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreXPathFilter2ThreeTest.java
similarity index 79%
rename from src/test/java/javax/xml/crypto/test/dsig/BaltimoreXPathFilter2ThreeTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreXPathFilter2ThreeTest.java
index 83f4133a..6b0c330c 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/BaltimoreXPathFilter2ThreeTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/BaltimoreXPathFilter2ThreeTest.java
@@ -19,14 +19,15 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -36,20 +37,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class BaltimoreXPathFilter2ThreeTest {
- private SignatureValidator validator;
+ private final SignatureValidator validator;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public BaltimoreXPathFilter2ThreeTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base += fs + "src/test/resources"
- + fs + "interop" + fs + "xfilter2";
- validator = new SignatureValidator(new File
- (base, "merlin-xpath-filter2-three"));
+ File file = resolveFile("src", "test", "resources", "interop", "xfilter2", "merlin-xpath-filter2-three");
+ validator = new SignatureValidator(file);
}
@org.junit.jupiter.api.Test
diff --git a/src/test/java/javax/xml/crypto/test/dsig/C14N11Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/C14N11Test.java
similarity index 87%
rename from src/test/java/javax/xml/crypto/test/dsig/C14N11Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/C14N11Test.java
index 773e9d0c..0df90cc8 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/C14N11Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/C14N11Test.java
@@ -16,15 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.security.Security;
import javax.xml.crypto.KeySelector;
-import javax.xml.crypto.test.KeySelectors;
-
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
@@ -37,9 +37,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class C14N11Test {
- private SignatureValidator validator;
- private File dir;
- private KeySelector sks;
+ private final SignatureValidator validator;
+ private final File dir;
+ private final KeySelector sks;
private static String[] vendors = { "IAIK", "IBM", "ORCL", "SUN", "UPC" };
static {
@@ -49,11 +49,8 @@ public class C14N11Test {
}
public C14N11Test() throws Exception {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- dir = new File(base + fs + "src/test/resources" + fs
- + "org" + fs + "w3c" + fs + "www" + fs
- + "interop" + fs + "xmldsig" + fs + "c14n11");
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "w3c", "www", "interop", "xmldsig",
+ "c14n11");
validator = new SignatureValidator(dir);
sks = new KeySelectors.SecretKeySelector("secret".getBytes(StandardCharsets.US_ASCII));
}
@@ -162,8 +159,8 @@ public class C14N11Test {
}
private void test_c14n11(String test) throws Exception {
- for (int i = 0; i < vendors.length; i++) {
- String file = test + "-" + vendors[i] + ".xml";
+ for (String vendor : vendors) {
+ String file = test + "-" + vendor + ".xml";
// System.out.println("Validating " + file);
boolean coreValidity = validator.validate(file, sks);
assertTrue(coreValidity, file + " failed core validation");
@@ -171,8 +168,8 @@ public class C14N11Test {
}
private void test_c14n11(String test, String[] vendors) throws Exception {
- for (int i = 0; i < vendors.length; i++) {
- String file = test + "-" + vendors[i] + ".xml";
+ for (String vendor : vendors) {
+ String file = test + "-" + vendor + ".xml";
// System.out.println("Validating " + file);
boolean coreValidity = validator.validate(file, sks, null, false);
assertTrue(coreValidity, file + " failed core validation");
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CanonicalizationMethodTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CanonicalizationMethodTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/CanonicalizationMethodTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CanonicalizationMethodTest.java
index 41476d08..383154b4 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CanonicalizationMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CanonicalizationMethodTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.security.*;
diff --git a/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ClassLoaderTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ClassLoaderTest.java
new file mode 100644
index 00000000..1f65f1c0
--- /dev/null
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ClassLoaderTest.java
@@ -0,0 +1,118 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.security.AccessController;
+import java.security.Provider;
+import java.security.Security;
+
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+
+import org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI;
+
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+
+/**
+ * This test uses more than one classloader to load a class (Driver) that
+ * invokes the XMLSignature API. It tests that there are not provider class
+ * loading issues with more than one classloader (see 6380953).
+ */
+public class ClassLoaderTest {
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(ClassLoaderTest.class);
+
+ @org.junit.jupiter.api.Test
+ public void testMultipleLoaders() throws Exception {
+ File file0 = resolveFile("build", "classes");
+ File file1 = resolveFile("build", "test");
+ URL[] urls = new URL[2];
+ urls[0] = file0.toURI().toURL();
+ urls[1] = file1.toURI().toURL();
+ try (URLClassLoader uc1 = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
+ URLClassLoader uc2 = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader())) {
+ Class<?> c1 = uc1.loadClass("org.apache.xml.security.test.javax.xml.crypto.dsig.Driver");
+ Class<?> c2 = uc2.loadClass("org.apache.xml.security.test.javax.xml.crypto.dsig.Driver");
+ Object o1 = c1.getDeclaredConstructor().newInstance();
+ Object o2 = c2.getDeclaredConstructor().newInstance();
+ Method m1 = c1.getMethod("dsig", (Class[]) null);
+ Method m2 = c2.getMethod("dsig", (Class[]) null);
+ m1.invoke(o1, (Object[]) null);
+ m2.invoke(o2, (Object[]) null);
+ }
+ }
+
+ @org.junit.jupiter.api.Test
+ public void testProviderMultipleLoaders() throws Exception {
+ File file0 = resolveFile("build", "classes");
+ File file1 = resolveFile("build", "test");
+ URL[] urls = new URL[2];
+ urls[0] = file0.toURI().toURL();
+ urls[1] = file1.toURI().toURL();
+
+ try (URLClassLoader uc1 = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader())) {
+ //load security provider using current class loader
+ final Provider provider = new XMLDSigRI();
+ AccessController.doPrivileged((java.security.PrivilegedAction<Object>)
+ () -> Security.addProvider(provider));
+ // get the provider from java.security.Security using URLClassLoader.
+ // Need to use introspection to invoke methods to avoid using the
+ // current class loader
+ String factoryName = "javax.xml.crypto.dsig.XMLSignatureFactory";
+ Class<?> factoryClass = uc1.loadClass(factoryName);
+ Method factoryMethod = factoryClass.getDeclaredMethod("getInstance", new Class[] {String.class});
+ Class<?> methodParameterClass = uc1.loadClass("javax.xml.crypto.dsig.spec.C14NMethodParameterSpec");
+ Method canonicalizationMethod = factoryClass.getDeclaredMethod("newCanonicalizationMethod",
+ new Class[] {String.class, methodParameterClass});
+ Object factory = factoryMethod.invoke(null, "DOM");
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < 100; i++) {
+ canonicalizationMethod.invoke(factory, new Object[] {CanonicalizationMethod.EXCLUSIVE, null});
+ }
+ long end = System.currentTimeMillis();
+ long elapsed = end-start;
+ LOG.debug("Elapsed: {}", elapsed);
+ }
+ }
+
+ @org.junit.jupiter.api.Test
+ public void testProviderMultipleLoadersTwo() throws Exception {
+ File file0 = resolveFile("build", "classes");
+ File file1 = resolveFile("build", "test");
+ URL[] urls = new URL[2];
+ urls[0] = file0.toURI().toURL();
+ urls[1] = file1.toURI().toURL();
+ try (URLClassLoader uc1 = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
+ URLClassLoader uc2 = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader())) {
+ Class<?> c1 = uc1.loadClass("org.apache.xml.security.test.javax.xml.crypto.dsig.AppA");
+ Class<?> c2 = uc2.loadClass("org.apache.xml.security.test.javax.xml.crypto.dsig.AppB");
+ Object o1 = c1.getDeclaredConstructor().newInstance();
+ Object o2 = c2.getDeclaredConstructor().newInstance();
+ Method m1 = c1.getMethod("dsig", (Class[]) null);
+ Method m2 = c2.getMethod("dsig", (Class[]) null);
+ m1.invoke(o1, (Object[]) null);
+ m2.invoke(o2, (Object[]) null);
+ }
+ }
+
+}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/ComRSASecurityTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ComRSASecurityTest.java
similarity index 67%
rename from src/test/java/javax/xml/crypto/test/dsig/ComRSASecurityTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ComRSASecurityTest.java
index bbd26832..38e6ed90 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/ComRSASecurityTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ComRSASecurityTest.java
@@ -19,13 +19,14 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -36,37 +37,32 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class ComRSASecurityTest {
- private SignatureValidator validator;
+ private final SignatureValidator validator;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public ComRSASecurityTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- base += fs + "src/test/resources" + fs + "com";
- validator = new SignatureValidator(new File
- (base, "rsasecurity/bdournaee"));
+ File base = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "com", "rsasecurity", "bdournaee");
+ validator = new SignatureValidator(base);
}
+
@org.junit.jupiter.api.Test
public void test_certj201_enveloping() throws Exception {
String file = "certj201_enveloping.xml";
- boolean coreValidity = validator.validate
- (file, new KeySelectors.KeyValueKeySelector());
+ boolean coreValidity = validator.validate(file, new KeySelectors.KeyValueKeySelector());
assertTrue(coreValidity, "Signature failed core validation");
}
+
@org.junit.jupiter.api.Test
public void test_certj201_enveloped() throws Exception {
String file = "certj201_enveloped.xml";
- boolean coreValidity = validator.validate
- (file, new KeySelectors.KeyValueKeySelector());
+ boolean coreValidity = validator.validate(file, new KeySelectors.KeyValueKeySelector());
assertTrue(coreValidity, "Signature failed core validation");
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CreateBaltimore23Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateBaltimore23Test.java
similarity index 87%
rename from src/test/java/javax/xml/crypto/test/dsig/CreateBaltimore23Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateBaltimore23Test.java
index 4fcc76ce..83431634 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CreateBaltimore23Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateBaltimore23Test.java
@@ -19,10 +19,15 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.io.Writer;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.Key;
@@ -32,30 +37,54 @@ import java.security.Security;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509CRL;
-import java.util.*;
-
-import org.apache.xml.security.parser.XMLParserException;
-import org.apache.xml.security.utils.resolver.ResourceResolver;
-import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
-import org.w3c.dom.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import javax.xml.crypto.KeySelector;
import javax.xml.crypto.URIDereferencer;
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dom.*;
+import javax.xml.crypto.dom.DOMStructure;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Manifest;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignatureProperties;
+import javax.xml.crypto.dsig.SignatureProperty;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
+import javax.xml.crypto.dsig.XMLObject;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureException;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMSignContext;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.dsig.keyinfo.*;
-import javax.xml.crypto.dsig.spec.*;
-import javax.xml.transform.*;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.keyinfo.RetrievalMethod;
+import javax.xml.crypto.dsig.keyinfo.X509Data;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.HMACParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+import javax.xml.crypto.dsig.spec.XPathFilterParameterSpec;
+import javax.xml.crypto.dsig.spec.XSLTTransformParameterSpec;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import org.apache.xml.security.parser.XMLParserException;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
+import org.apache.xml.security.utils.resolver.ResourceResolver;
+import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
-import javax.xml.crypto.test.KeySelectors;
-
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -68,58 +97,43 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class CreateBaltimore23Test {
- private XMLSignatureFactory fac;
- private KeyInfoFactory kifac;
- private CanonicalizationMethod withoutComments;
- private Transform withComments;
- private SignatureMethod dsaSha1, rsaSha1;
- private DigestMethod sha1;
- private KeyInfo dsa, rsa;
- private KeySelector kvks = new KeySelectors.KeyValueKeySelector();
- private KeySelector sks;
- private Key signingKey;
- private PublicKey validatingKey;
- private Certificate signingCert;
- private KeyStore ks;
+ private final XMLSignatureFactory fac;
+ private final KeyInfoFactory kifac;
+ private final CanonicalizationMethod withoutComments;
+ private final Transform withComments;
+ private final SignatureMethod dsaSha1, rsaSha1;
+ private final DigestMethod sha1;
+ private final KeyInfo dsa, rsa;
+ private final KeySelector kvks = new KeySelectors.KeyValueKeySelector();
+ private final KeySelector sks;
+ private final Key signingKey;
+ private final PublicKey validatingKey;
+ private final Certificate signingCert;
+ private final KeyStore ks;
private final URIDereferencer ud;
static {
System.setProperty("org.apache.xml.security.allowUnsafeResourceResolving", "true");
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
public CreateBaltimore23Test() throws Exception {
- fac = XMLSignatureFactory.getInstance
- ("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
+ fac = XMLSignatureFactory.getInstance("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
kifac = fac.getKeyInfoFactory();
- // get key & self-signed certificate from keystore
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- try (FileInputStream fis = new FileInputStream
- (base + fs + "src/test/resources" + fs + "test.jks")) {
- ks = KeyStore.getInstance("JKS");
- ks.load(fis, "changeit".toCharArray());
- }
+ ks = XmlSecTestEnvironment.getTestKeyStore();
signingKey = ks.getKey("mullan", "changeit".toCharArray());
signingCert = ks.getCertificate("mullan");
validatingKey = signingCert.getPublicKey();
// create common objects
- withoutComments = fac.newCanonicalizationMethod
- (CanonicalizationMethod.INCLUSIVE, (C14NMethodParameterSpec) null);
- withComments = fac.newTransform
- (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS,
- (TransformParameterSpec) null);
+ withoutComments = fac.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE, (C14NMethodParameterSpec) null);
+ withComments = fac.newTransform(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS, (TransformParameterSpec) null);
dsaSha1 = fac.newSignatureMethod(SignatureMethod.DSA_SHA1, null);
sha1 = fac.newDigestMethod(DigestMethod.SHA1, null);
- dsa = kifac.newKeyInfo(Collections.singletonList
- (kifac.newKeyValue(validatingKey)));
- rsa = kifac.newKeyInfo(Collections.singletonList
- (kifac.newKeyValue(TestUtils.getPublicKey("RSA"))));
+ dsa = kifac.newKeyInfo(Collections.singletonList(kifac.newKeyValue(validatingKey)));
+ rsa = kifac.newKeyInfo(Collections.singletonList(kifac.newKeyValue(TestUtils.getPublicKey("RSA"))));
rsaSha1 = fac.newSignatureMethod(SignatureMethod.RSA_SHA1, null);
sks = new KeySelectors.SecretKeySelector("secret".getBytes(StandardCharsets.US_ASCII));
@@ -241,20 +255,15 @@ public class CreateBaltimore23Test {
List<Object> xds = new ArrayList<>();
CertificateFactory cf = CertificateFactory.getInstance("X.509");
xds.add(signingCert);
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- FileInputStream fis = new FileInputStream(
- base + fs + "src/test/resources" + fs + "ie" + fs +
- "baltimore" + fs + "merlin-examples" + fs +
- "merlin-xmldsig-twenty-three" + fs + "certs" + fs + "crl");
- X509CRL crl = (X509CRL) cf.generateCRL(fis);
- fis.close();
+ X509CRL crl;
+ try (FileInputStream fis = new FileInputStream(resolveFile("src", "test", "resources", "ie", "baltimore",
+ "merlin-examples", "merlin-xmldsig-twenty-three", "certs", "crl"))) {
+ crl = (X509CRL) cf.generateCRL(fis);
+ }
xds.add(crl);
- KeyInfo crt_crl = kifac.newKeyInfo(Collections.singletonList
- (kifac.newX509Data(xds)));
+ KeyInfo crt_crl = kifac.newKeyInfo(Collections.singletonList(kifac.newX509Data(xds)));
- test_create_signature_external(dsaSha1, crt_crl, signingKey,
- new X509KeySelector(ks), false);
+ test_create_signature_external(dsaSha1, crt_crl, signingKey, new X509KeySelector(ks), false);
}
@org.junit.jupiter.api.Test
@@ -678,14 +687,8 @@ public class CreateBaltimore23Test {
System.out.println(sw.toString());
*/
- DOMValidateContext dvc = new DOMValidateContext
- (ks, doc.getDocumentElement());
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- String fs = System.getProperty("file.separator");
- File f = new File(
- base + fs + "src/test/resources" + fs + "ie" + fs +
- "baltimore" + fs + "merlin-examples" + fs +
- "merlin-xmldsig-twenty-three" + fs);
+ DOMValidateContext dvc = new DOMValidateContext(ks, doc.getDocumentElement());
+ File f = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmldsig-twenty-three");
dvc.setBaseURI(f.toURI().toString());
dvc.setURIDereferencer(ud);
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropExcC14NTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropExcC14NTest.java
similarity index 77%
rename from src/test/java/javax/xml/crypto/test/dsig/CreateInteropExcC14NTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropExcC14NTest.java
index 6081a523..33f9f566 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropExcC14NTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropExcC14NTest.java
@@ -19,23 +19,43 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.*;
-import java.security.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.security.Key;
+import java.security.KeyStore;
+import java.security.PublicKey;
+import java.security.Security;
import java.security.cert.Certificate;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import javax.xml.crypto.dom.DOMStructure;
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dsig.dom.*;
-import javax.xml.crypto.dsig.keyinfo.*;
-import javax.xml.crypto.dsig.spec.*;
-
-import org.w3c.dom.*;
-
-import javax.xml.crypto.test.KeySelectors;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.XMLObject;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.keyinfo.KeyValue;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.w3c.dom.Comment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -47,11 +67,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class CreateInteropExcC14NTest {
- private XMLSignatureFactory fac;
- private KeyInfoFactory kifac;
- private KeyStore ks;
- private Key signingKey;
- private PublicKey validatingKey;
+ private final XMLSignatureFactory fac;
+ private final KeyInfoFactory kifac;
+ private final KeyStore ks;
+ private final Key signingKey;
+ private final PublicKey validatingKey;
static {
Security.insertProviderAt
@@ -63,15 +83,7 @@ public class CreateInteropExcC14NTest {
("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
kifac = fac.getKeyInfoFactory();
- // get key & self-signed certificate from keystore
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- String fs = System.getProperty("file.separator");
- try (FileInputStream fis = new FileInputStream
- (base + fs + "src/test/resources" + fs + "test.jks")) {
- ks = KeyStore.getInstance("JKS");
- ks.load(fis, "changeit".toCharArray());
- }
+ ks = XmlSecTestEnvironment.getTestKeyStore();
Certificate signingCert = ks.getCertificate("mullan");
signingKey = ks.getKey("mullan", "changeit".toCharArray());
validatingKey = signingCert.getPublicKey();
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropXFilter2Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXFilter2Test.java
similarity index 77%
rename from src/test/java/javax/xml/crypto/test/dsig/CreateInteropXFilter2Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXFilter2Test.java
index 40914736..a5a0b760 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropXFilter2Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXFilter2Test.java
@@ -19,23 +19,43 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.*;
-import java.security.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.security.Key;
+import java.security.KeyStore;
+import java.security.PublicKey;
+import java.security.Security;
import java.security.cert.Certificate;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import javax.xml.crypto.XMLStructure;
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dsig.dom.*;
-import javax.xml.crypto.dsig.keyinfo.*;
-import javax.xml.crypto.dsig.spec.*;
-
-import org.w3c.dom.*;
-
-import javax.xml.crypto.test.KeySelectors;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+import javax.xml.crypto.dsig.spec.XPathFilter2ParameterSpec;
+import javax.xml.crypto.dsig.spec.XPathType;
+
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.w3c.dom.Comment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -47,12 +67,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class CreateInteropXFilter2Test {
- private XMLSignatureFactory fac;
- private KeyInfoFactory kifac;
- private KeyStore ks;
- private Key signingKey;
- private PublicKey validatingKey;
- private Certificate signingCert;
+ private final XMLSignatureFactory fac;
+ private final KeyInfoFactory kifac;
+ private final KeyStore ks;
+ private final Key signingKey;
+ private final PublicKey validatingKey;
+ private final Certificate signingCert;
static {
Security.insertProviderAt
@@ -64,15 +84,7 @@ public class CreateInteropXFilter2Test {
("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
kifac = fac.getKeyInfoFactory();
- // get key & self-signed certificate from keystore
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- try (FileInputStream fis = new FileInputStream
- (base + fs + "src/test/resources" + fs + "test.jks")) {
- ks = KeyStore.getInstance("JKS");
- ks.load(fis, "changeit".toCharArray());
- }
+ ks = XmlSecTestEnvironment.getTestKeyStore();
signingKey = ks.getKey("mullan", "changeit".toCharArray());
signingCert = ks.getCertificate("mullan");
validatingKey = signingCert.getPublicKey();
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropXMLDSig11Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXMLDSig11Test.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/CreateInteropXMLDSig11Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXMLDSig11Test.java
index 7f3b1733..1e62f514 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CreateInteropXMLDSig11Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreateInteropXMLDSig11Test.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.nio.charset.StandardCharsets;
import java.security.*;
@@ -30,10 +30,9 @@ import javax.xml.crypto.dsig.dom.*;
import javax.xml.crypto.dsig.keyinfo.*;
import javax.xml.crypto.dsig.spec.*;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.w3c.dom.*;
-import javax.xml.crypto.test.KeySelectors;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/CreatePhaosXMLDSig3Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreatePhaosXMLDSig3Test.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/CreatePhaosXMLDSig3Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreatePhaosXMLDSig3Test.java
index 12855f8b..689f327b 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/CreatePhaosXMLDSig3Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/CreatePhaosXMLDSig3Test.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.nio.charset.StandardCharsets;
import java.security.Security;
@@ -40,8 +40,8 @@ import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
import javax.xml.crypto.dsig.spec.HMACParameterSpec;
import javax.xml.crypto.dsig.spec.TransformParameterSpec;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/DetachedTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DetachedTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/DetachedTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DetachedTest.java
index 38ad69ad..97156653 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/DetachedTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DetachedTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.dsig.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/DigestMethodTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DigestMethodTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/DigestMethodTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DigestMethodTest.java
index 994f6806..48a47432 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/DigestMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/DigestMethodTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.dsig.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/Driver.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Driver.java
similarity index 96%
rename from src/test/java/javax/xml/crypto/test/dsig/Driver.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Driver.java
index 3448f806..856050a1 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/Driver.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/Driver.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.dsig.CanonicalizationMethod;
import javax.xml.crypto.dsig.XMLSignatureFactory;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/EdDSATestAbstract.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EdDSATestAbstract.java
similarity index 94%
rename from src/test/java/javax/xml/crypto/test/dsig/EdDSATestAbstract.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EdDSATestAbstract.java
index c5b7a5d5..879e9b96 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/EdDSATestAbstract.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EdDSATestAbstract.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -44,7 +44,7 @@ public abstract class EdDSATestAbstract {
// Add BouncyCastleProvider only for java versions before JDK 15.
boolean isNotJDK15up;
try {
- int javaVersion = Integer.parseInt(System.getProperty("java.specification.version"));
+ int javaVersion = Integer.getInteger("java.specification.version", 0);
isNotJDK15up = javaVersion < 15;
} catch (NumberFormatException ex) {
isNotJDK15up = true;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/EnvelopingSignatureTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EnvelopingSignatureTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/EnvelopingSignatureTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EnvelopingSignatureTest.java
index 75768a55..22737a72 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/EnvelopingSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/EnvelopingSignatureTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/HMACSignatureAlgorithmTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/HMACSignatureAlgorithmTest.java
index 0af8ff88..c0492c7b 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/HMACSignatureAlgorithmTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.lang.reflect.Constructor;
import java.nio.charset.StandardCharsets;
@@ -40,8 +40,8 @@ import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
import javax.xml.crypto.dsig.spec.HMACParameterSpec;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.junit.jupiter.api.Assumptions;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/IaikCoreFeaturesTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikCoreFeaturesTest.java
similarity index 67%
rename from src/test/java/javax/xml/crypto/test/dsig/IaikCoreFeaturesTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikCoreFeaturesTest.java
index 512c7eaf..1bf32c74 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/IaikCoreFeaturesTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikCoreFeaturesTest.java
@@ -19,20 +19,29 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.io.FileInputStream;
+import java.nio.file.Path;
import java.security.Security;
-import javax.xml.crypto.*;
+import javax.xml.crypto.Data;
+import javax.xml.crypto.OctetStreamData;
+import javax.xml.crypto.URIDereferencer;
+import javax.xml.crypto.URIReference;
+import javax.xml.crypto.URIReferenceException;
+import javax.xml.crypto.XMLCryptoContext;
import javax.xml.crypto.dsig.XMLSignatureFactory;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -42,8 +51,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class IaikCoreFeaturesTest {
- private SignatureValidator validator;
- private String base;
+ private final SignatureValidator validator;
+ private final Path base;
static {
Security.insertProviderAt
@@ -52,21 +61,16 @@ public class IaikCoreFeaturesTest {
}
public IaikCoreFeaturesTest() {
- String fs = System.getProperty("file.separator");
- base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base = base + fs + "src/test/resources" + fs +
- "at" + fs + "iaik" + fs + "ixsil";
- validator = new SignatureValidator(new File
- (base, "coreFeatures/signatures"));
+ base = resolvePath("src", "test", "resources", "at", "iaik", "ixsil");
+ validator = new SignatureValidator(resolvePath(base, "coreFeatures", "signatures").toFile());
}
@org.junit.jupiter.api.Test
public void test_anonymousReferenceSignature() throws Exception {
String file = "anonymousReferenceSignature.xml";
- boolean coreValidity = validator.validate
- (file, new KeySelectors.KeyValueKeySelector(),
- new NullURIDereferencer(base));
+ boolean coreValidity = validator.validate(file, new KeySelectors.KeyValueKeySelector(),
+ new NullURIDereferencer(base));
assertTrue(coreValidity, "Signature failed core validation");
}
@@ -91,14 +95,14 @@ public class IaikCoreFeaturesTest {
private static class NullURIDereferencer implements URIDereferencer {
- private OctetStreamData osd;
+ private final OctetStreamData osd;
- NullURIDereferencer(String base) throws Exception {
- File content = new File
- (base, "coreFeatures/samples/anonymousReferenceContent.xml");
+ NullURIDereferencer(Path base) throws Exception {
+ File content = resolveFile(base, "coreFeatures", "samples", "anonymousReferenceContent.xml");
osd = new OctetStreamData(new FileInputStream(content));
}
+ @Override
public Data dereference(URIReference uriReference,
XMLCryptoContext context) throws URIReferenceException {
@@ -111,29 +115,22 @@ public class IaikCoreFeaturesTest {
}
private static class OfflineDereferencer implements URIDereferencer {
- private String w3cRec;
- private URIDereferencer defaultDereferencer;
+ private final File w3cRec;
+ private final URIDereferencer defaultDereferencer;
OfflineDereferencer() throws Exception {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./" :
- System.getProperty("basedir");
- w3cRec = base + fs + "src/test/resources" + fs + "org" + fs + "w3c" + fs + "www" +
- fs + "TR" + fs + "2000";
- defaultDereferencer =
- XMLSignatureFactory.getInstance().getURIDereferencer();
+ w3cRec = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "w3c", "www", "TR", "2000");
+ defaultDereferencer = XMLSignatureFactory.getInstance().getURIDereferencer();
}
- public Data dereference(URIReference uriReference,
- XMLCryptoContext context) throws URIReferenceException {
-
+ @Override
+ public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException {
try {
if ("http://www.w3.org/TR/2000/REC-xml-20001006".equals(uriReference.getURI())) {
File content = new File(w3cRec, "REC-xml-20001006");
return new OctetStreamData(new FileInputStream(content));
- } else {
- return defaultDereferencer.dereference(uriReference, context);
}
+ return defaultDereferencer.dereference(uriReference, context);
} catch (java.io.FileNotFoundException ex) {
throw new URIReferenceException(ex.getMessage(), ex);
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/IaikSignatureAlgosTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikSignatureAlgosTest.java
similarity index 81%
rename from src/test/java/javax/xml/crypto/test/dsig/IaikSignatureAlgosTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikSignatureAlgosTest.java
index 19af37b0..3776bd7a 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/IaikSignatureAlgosTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikSignatureAlgosTest.java
@@ -19,16 +19,19 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.File;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Path;
import java.security.Security;
+
import javax.xml.crypto.dsig.XMLSignatureException;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -40,20 +43,15 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class IaikSignatureAlgosTest {
- private SignatureValidator validator;
+ private final SignatureValidator validator;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public IaikSignatureAlgosTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base += fs + "src/test/resources" + fs
- + "at" + fs + "iaik" + fs + "ixsil";
- validator = new SignatureValidator(new File
- (base, "signatureAlgorithms/signatures"));
+ Path base = resolvePath("src", "test", "resources", "at", "iaik", "ixsil");
+ validator = new SignatureValidator(resolveFile(base, "signatureAlgorithms", "signatures"));
}
@org.junit.jupiter.api.Test
diff --git a/src/test/java/javax/xml/crypto/test/dsig/IaikTransformsTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikTransformsTest.java
similarity index 81%
rename from src/test/java/javax/xml/crypto/test/dsig/IaikTransformsTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikTransformsTest.java
index 47986dd8..a3a25b93 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/IaikTransformsTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/IaikTransformsTest.java
@@ -19,17 +19,18 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.File;
+import java.nio.file.Path;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
-
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -39,21 +40,16 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class IaikTransformsTest {
- private SignatureValidator validator;
+ private final SignatureValidator validator;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
public IaikTransformsTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base += fs + "src/test/resources" + fs +
- "at" + fs + "iaik" + fs + "ixsil";
- validator = new SignatureValidator(new File
- (base, "transforms/signatures"));
+ Path base = resolvePath("src", "test", "resources", "at", "iaik", "ixsil");
+ validator = new SignatureValidator(resolveFile(base, "transforms", "signatures"));
}
@org.junit.jupiter.api.Test
diff --git a/src/test/java/javax/xml/crypto/test/dsig/InteropC14nTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropC14nTest.java
similarity index 83%
rename from src/test/java/javax/xml/crypto/test/dsig/InteropC14nTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropC14nTest.java
index 3bb517c4..8f3ace8c 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/InteropC14nTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropC14nTest.java
@@ -19,17 +19,17 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.security.Security;
-import javax.xml.crypto.test.KeySelectors;
-
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -40,23 +40,20 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class InteropC14nTest {
private SignatureValidator validator;
- private String base;
+ private final File base;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
public InteropC14nTest() {
- String fs = System.getProperty("file.separator");
- base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base = base + fs + "src/test/resources" + fs + "interop";
+ base = resolveFile("src", "test", "resources", "interop", "c14n");
}
@org.junit.jupiter.api.Test
public void test_y1_exc_signature() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y1"));
+ validator = new SignatureValidator(new File(base, "Y1"));
String file = "exc-signature.xml";
boolean coreValidity = validator.validate
@@ -67,7 +64,7 @@ public class InteropC14nTest {
/* COMMENTED OUT since this test requires MD5 support
public void test_y2_signature_joseph_exc() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y2"));
+ validator = new SignatureValidator(new File(base, "Y2"));
String file = "signature-joseph-exc.xml";
boolean coreValidity = validator.validate
@@ -78,7 +75,7 @@ public class InteropC14nTest {
@org.junit.jupiter.api.Test
public void test_y3_signature() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y3"));
+ validator = new SignatureValidator(new File(base, "Y3"));
String file = "signature.xml";
boolean coreValidity = validator.validate
@@ -92,7 +89,7 @@ public class InteropC14nTest {
@org.junit.jupiter.api.Test
public void test_y4_signature() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y4"));
+ validator = new SignatureValidator(new File(base, "Y4"));
String file = "signature.xml";
boolean coreValidity = validator.validate
@@ -107,7 +104,7 @@ public class InteropC14nTest {
@org.junit.jupiter.api.Test
@org.junit.jupiter.api.Disabled
public void test_y5_signature() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y5"));
+ validator = new SignatureValidator(new File(base, "Y5"));
String file = "signature.xml";
boolean coreValidity = validator.validate
@@ -122,7 +119,7 @@ public class InteropC14nTest {
@org.junit.jupiter.api.Test
@org.junit.jupiter.api.Disabled
public void test_y5_signatureCommented() throws Exception {
- validator = new SignatureValidator(new File(base, "c14n/Y5"));
+ validator = new SignatureValidator(new File(base, "Y5"));
String file = "signatureCommented.xml";
boolean coreValidity = validator.validate
diff --git a/src/test/java/javax/xml/crypto/test/dsig/InteropXMLDSig11Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropXMLDSig11Test.java
similarity index 93%
rename from src/test/java/javax/xml/crypto/test/dsig/InteropXMLDSig11Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropXMLDSig11Test.java
index 7ae6a38d..f53c38ae 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/InteropXMLDSig11Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/InteropXMLDSig11Test.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.nio.charset.StandardCharsets;
@@ -25,7 +25,8 @@ import java.security.NoSuchAlgorithmException;
import java.security.Security;
import javax.xml.crypto.KeySelector;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -36,9 +37,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class InteropXMLDSig11Test {
- private SignatureValidator validator;
- private File dir;
- private KeySelector kvks, sks;
+ private final SignatureValidator validator;
+ private final File dir;
+ private final KeySelector kvks, sks;
private boolean ecSupport = true;
static {
@@ -56,12 +57,7 @@ public class InteropXMLDSig11Test {
if ("IBM Corporation".equals(System.getProperty("java.vendor"))) {
ecSupport = false;
}
- String fs = File.separator;
- String base = System.getProperty("basedir") == null
- ? "./": System.getProperty("basedir");
- dir = new File(base + fs + "src/test/resources" + fs
- + "org" + fs + "w3c" + fs + "www" + fs
- + "interop" + fs + "xmldsig11");
+ dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "org", "w3c", "www", "interop", "xmldsig11");
validator = new SignatureValidator(dir);
kvks = new KeySelectors.KeyValueKeySelector();
sks = new KeySelectors.SecretKeySelector("testkey".getBytes(StandardCharsets.US_ASCII));
diff --git a/src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenRefCountTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenRefCountTest.java
similarity index 80%
rename from src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenRefCountTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenRefCountTest.java
index c5564faf..5ebc1873 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenRefCountTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenRefCountTest.java
@@ -16,17 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
-import java.io.FileInputStream;
import java.security.Security;
import javax.xml.crypto.MarshalException;
import javax.xml.crypto.dom.DOMCryptoContext;
import org.apache.jcp.xml.dsig.internal.dom.DOMSignedInfo;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Element;
@@ -65,20 +65,10 @@ public class JSRForbiddenRefCountTest {
//
}
- private Element getSignedInfoElement(
- String directory, String file
- ) throws Exception {
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- directory = basedir + "/" + directory;
- }
-
- File f = new File(directory + "/" + file);
-
- org.w3c.dom.Document doc = XMLUtils.read(new FileInputStream(f), false);
-
- return (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS,
- Constants._TAG_SIGNEDINFO).item(0);
+ private Element getSignedInfoElement(String directory, String file) throws Exception {
+ File f = new File(XmlSecTestEnvironment.resolveFile(directory), file);
+ org.w3c.dom.Document doc = XMLUtils.read(f, false);
+ return (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNEDINFO).item(0);
}
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenReferenceTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenReferenceTest.java
similarity index 84%
rename from src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenReferenceTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenReferenceTest.java
index 76a47db1..1b854e36 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/JSRForbiddenReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRForbiddenReferenceTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
@@ -25,11 +25,12 @@ import java.security.Security;
import javax.xml.crypto.dsig.XMLSignatureException;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.resolver.ResourceResolver;
import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -39,19 +40,15 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class JSRForbiddenReferenceTest {
- private SignatureValidator validator;
- private File dir;
+ private final SignatureValidator validator;
+ private final File dir;
static {
Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public JSRForbiddenReferenceTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs
- + "javax" + fs + "xml" + fs + "crypto", "dsig");
+ dir = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "test", "javax", "xml", "crypto", "dsig");
validator = new SignatureValidator(dir);
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/JSRWrappingAttackTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRWrappingAttackTest.java
similarity index 83%
rename from src/test/java/javax/xml/crypto/test/dsig/JSRWrappingAttackTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRWrappingAttackTest.java
index 3ddefe55..6d56acb3 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/JSRWrappingAttackTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/JSRWrappingAttackTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
@@ -25,12 +25,13 @@ import java.security.Security;
import javax.xml.crypto.dsig.XMLSignatureException;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -40,19 +41,15 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class JSRWrappingAttackTest {
- private SignatureValidator validator;
- private File dir;
+ private final SignatureValidator validator;
+ private final File dir;
static {
Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
public JSRWrappingAttackTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs
- + "at" + fs + "iaik" + fs + "ixsil" + fs + "coreFeatures", "signatures");
+ dir = resolveFile("src", "test", "resources", "at", "iaik", "ixsil", "coreFeatures", "signatures");
validator = new SignatureValidator(dir);
}
@@ -60,8 +57,7 @@ public class JSRWrappingAttackTest {
@org.junit.jupiter.api.Test
public void testWrappingAttack() throws Exception {
String file = "manifestSignatureWrapping.xml";
-
- Document doc = XMLUtils.read(new FileInputStream(new File(dir, file)), false);
+ Document doc = XMLUtils.read(new File(dir, file), false);
Element sigElement = SignatureValidator.getSignatureElement(doc);
if (sigElement == null) {
throw new Exception("Couldn't find signature Element");
diff --git a/src/test/java/javax/xml/crypto/test/dsig/LocalHttpCacheURIDereferencer.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/LocalHttpCacheURIDereferencer.java
similarity index 62%
rename from src/test/java/javax/xml/crypto/test/dsig/LocalHttpCacheURIDereferencer.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/LocalHttpCacheURIDereferencer.java
index 6b8ac973..418a8764 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/LocalHttpCacheURIDereferencer.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/LocalHttpCacheURIDereferencer.java
@@ -16,12 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
+
import javax.xml.crypto.Data;
import javax.xml.crypto.OctetStreamData;
import javax.xml.crypto.URIDereferencer;
@@ -30,45 +31,53 @@ import javax.xml.crypto.URIReferenceException;
import javax.xml.crypto.XMLCryptoContext;
import javax.xml.crypto.dsig.XMLSignatureFactory;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+
/**
* This URIDereferencer implementation retrieves http references used in
* test signatures from local disk in order to avoid network requests.
*/
public class LocalHttpCacheURIDereferencer implements URIDereferencer {
+ private static final File DIR = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "test",
+ "javax", "xml", "crypto", "dsig");
+
private final URIDereferencer ud;
- private static final String FS = System.getProperty("file.separator");
- private static final String BASEDIR = System.getProperty("basedir");
private final Map<String, File> uriMap;
public LocalHttpCacheURIDereferencer() {
- XMLSignatureFactory xmlSignatureFactory =
- XMLSignatureFactory.getInstance("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
+ XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance("DOM",
+ new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
ud = xmlSignatureFactory.getURIDereferencer();
- String base = BASEDIR == null ? "./": BASEDIR;
- File dir = new File(base + FS + "src/test/resources" + FS + "javax" +
- FS + "xml" + FS + "crypto" + FS + "dsig");
uriMap = new HashMap<>();
- uriMap.put("http://www.w3.org/TR/xml-stylesheet",
- new File(dir, "xml-stylesheet"));
- uriMap.put("http://www.w3.org/Signature/2002/04/xml-stylesheet.b64",
- new File(dir, "xml-stylesheet.b64"));
- uriMap.put("http://www.ietf.org/rfc/rfc3161.txt",
- new File(dir, "rfc3161.txt"));
+ uriMap.put("http://www.w3.org/TR/xml-stylesheet", getExistingFile("xml-stylesheet"));
+ uriMap.put("http://www.w3.org/Signature/2002/04/xml-stylesheet.b64", getExistingFile("xml-stylesheet.b64"));
+ uriMap.put("http://www.ietf.org/rfc/rfc3161.txt", getExistingFile("rfc3161.txt"));
}
+ @Override
public Data dereference(URIReference uriReference, XMLCryptoContext context)
throws URIReferenceException {
String uri = uriReference.getURI();
if (uriMap.containsKey(uri)) {
try {
- FileInputStream fis = new FileInputStream(uriMap.get(uri));
- return new OctetStreamData(
- fis, uriReference.getURI(), uriReference.getType());
- } catch (Exception e) { throw new URIReferenceException(e); }
+ return new OctetStreamData(new FileInputStream(uriMap.get(uri)), uriReference.getURI(),
+ uriReference.getType());
+ } catch (Exception e) {
+ throw new URIReferenceException(e);
+ }
}
// fallback on builtin deref
return ud.dereference(uriReference, context);
}
+
+
+ private File getExistingFile(String fileName) {
+ File file = new File(DIR, fileName);
+ if (file.canRead()) {
+ return file;
+ }
+ throw new IllegalArgumentException("The file cannot be read: " + file);
+ }
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/ManifestTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ManifestTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/ManifestTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ManifestTest.java
index efc35289..25c62c58 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/ManifestTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ManifestTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.util.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PKSignatureAlgorithmTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PKSignatureAlgorithmTest.java
index 8e198978..3416415d 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PKSignatureAlgorithmTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.lang.reflect.Constructor;
import java.security.AlgorithmParameters;
@@ -44,9 +44,9 @@ import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
-import javax.xml.crypto.test.KeySelectors;
import org.apache.jcp.xml.dsig.internal.dom.RSAPSSParameterSpec;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeAll;
import org.w3c.dom.Document;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3Test.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3Test.java
similarity index 96%
rename from src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3Test.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3Test.java
index 0345d769..9c2b0b63 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3Test.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3Test.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
@@ -30,7 +30,8 @@ import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.dsig.XMLSignatureException;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -44,8 +45,8 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class PhaosXMLDSig3Test {
- private SignatureValidator validator;
- private File base;
+ private final SignatureValidator validator;
+ private final File base;
private final URIDereferencer ud;
static {
@@ -54,10 +55,7 @@ public class PhaosXMLDSig3Test {
}
public PhaosXMLDSig3Test() {
- String fs = System.getProperty("file.separator");
- String basedir = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base = new File(basedir + fs + "src/test/resources" + fs +
- "com" + fs + "phaos", "phaos-xmldsig-three");
+ base = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "com", "phaos", "phaos-xmldsig-three");
validator = new SignatureValidator(base);
ud = new LocalHttpCacheURIDereferencer();
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3XalanTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3XalanTest.java
similarity index 70%
rename from src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3XalanTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3XalanTest.java
index 52d4888f..59140201 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/PhaosXMLDSig3XalanTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/PhaosXMLDSig3XalanTest.java
@@ -19,17 +19,18 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-
-import javax.xml.crypto.test.KeySelectors;
import java.io.File;
import java.security.Security;
-import static org.junit.jupiter.api.Assertions.*;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -39,14 +40,13 @@ import static org.junit.jupiter.api.Assertions.*;
*/
public class PhaosXMLDSig3XalanTest {
- private static final String CONFIG_FILE = "config-xalan.xml";
+ private static final String CONFIG_FILE = "/config-xalan.xml";
- private SignatureValidator validator;
- private File base;
+ private final SignatureValidator validator;
+ private final File base;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
@BeforeAll
@@ -60,19 +60,14 @@ public class PhaosXMLDSig3XalanTest {
}
public PhaosXMLDSig3XalanTest() {
- String fs = System.getProperty("file.separator");
- String basedir = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- base = new File(basedir + fs + "src/test/resources" + fs +
- "com" + fs + "phaos", "phaos-xmldsig-three");
+ base = resolveFile("src", "test", "resources", "com", "phaos", "phaos-xmldsig-three");
validator = new SignatureValidator(base);
}
@org.junit.jupiter.api.Test
public void test_signature_rsa_xpath_transform_enveloped() throws Exception {
String file = "signature-rsa-xpath-transform-enveloped.xml";
-
- boolean coreValidity =
- validator.validate(file, new KeySelectors.RawX509KeySelector());
+ boolean coreValidity = validator.validate(file, new KeySelectors.RawX509KeySelector());
assertTrue(coreValidity, "Signature failed core validation");
}
}
\ No newline at end of file
diff --git a/src/test/java/javax/xml/crypto/test/dsig/ReferenceTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ReferenceTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/ReferenceTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ReferenceTest.java
index af2ab8b7..a4824df9 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/ReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ReferenceTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SecureXSLTTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SecureXSLTTest.java
similarity index 60%
rename from src/test/java/javax/xml/crypto/test/dsig/SecureXSLTTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SecureXSLTTest.java
index 7fdf651b..ab486357 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SecureXSLTTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SecureXSLTTest.java
@@ -16,64 +16,48 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
import java.security.Security;
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dsig.dom.*;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.apache.xml.security.utils.XMLUtils;
-import org.w3c.dom.*;
-
-import javax.xml.crypto.test.KeySelectors;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.fail;
public class SecureXSLTTest {
+ private static final File BASEDIR = resolveFile("src", "test", "resources", "org", "apache", "xml", "security",
+ "test", "javax", "xml", "crypto", "dsig");
+
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
}
@org.junit.jupiter.api.Test
public void testSignature1() throws Exception {
-
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- File baseDir = new File(base + fs + "src/test/resources"
- + fs + "javax" + fs + "xml" + fs + "crypto", "dsig");
-
- testSignature(new File(baseDir, "signature1.xml"));
+ testSignature(new File(BASEDIR, "signature1.xml"));
}
@org.junit.jupiter.api.Test
public void testSignature2() throws Exception {
-
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- File baseDir = new File(base + fs + "src/test/resources"
- + fs + "javax" + fs + "xml" + fs + "crypto", "dsig");
-
- testSignature(new File(baseDir, "signature2.xml"));
+ testSignature(new File(BASEDIR, "signature2.xml"));
}
@org.junit.jupiter.api.Test
public void testSignature3() throws Exception {
-
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- File baseDir = new File(base + fs + "src/test/resources"
- + fs + "javax" + fs + "xml" + fs + "crypto", "dsig");
-
- testSignature(new File(baseDir, "signature3.xml"));
+ testSignature(new File(BASEDIR, "signature3.xml"));
}
private void testSignature(File signatureFile) throws Exception {
@@ -81,11 +65,9 @@ public class SecureXSLTTest {
XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
File f = new File("doc.xml");
- Document doc =
- XMLUtils.read(new FileInputStream(signatureFile), false);
+ Document doc = XMLUtils.read(new FileInputStream(signatureFile), false);
- NodeList nl =
- doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
+ NodeList nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
if (nl.getLength() == 0) {
throw new Exception("Cannot find Signature element");
}
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureDigestMethodTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureDigestMethodTest.java
index f3f0a80e..7f8d283f 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureDigestMethodTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.security.Key;
import java.security.Security;
@@ -37,8 +37,8 @@ import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
-import javax.xml.crypto.test.KeySelectors;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
import org.junit.jupiter.api.Assumptions;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignatureMethodTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureMethodTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/SignatureMethodTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureMethodTest.java
index 587c7ea4..59872a91 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignatureMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureMethodTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.dsig.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignaturePropertiesTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertiesTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/SignaturePropertiesTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertiesTest.java
index bf3ff7ae..389560a4 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignaturePropertiesTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertiesTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.util.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignaturePropertyTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertyTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/SignaturePropertyTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertyTest.java
index d92f9f33..83e1199d 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignaturePropertyTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignaturePropertyTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.util.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignatureValidator.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidator.java
similarity index 52%
rename from src/test/java/javax/xml/crypto/test/dsig/SignatureValidator.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidator.java
index b3bd195d..7b369f3b 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignatureValidator.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidator.java
@@ -19,101 +19,120 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.InputStream;
+import java.util.Objects;
-import javax.xml.crypto.*;
-import javax.xml.crypto.dsig.*;
+import javax.xml.crypto.KeySelector;
+import javax.xml.crypto.URIDereferencer;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import org.apache.xml.security.parser.XMLParserException;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
-import org.w3c.dom.Node;
import org.w3c.dom.Element;
-import org.w3c.dom.traversal.*;
+import org.w3c.dom.Node;
+import org.w3c.dom.traversal.DocumentTraversal;
+import org.w3c.dom.traversal.NodeFilter;
+import org.w3c.dom.traversal.NodeIterator;
/**
* This is a class which performs xml signature validation upon request
- *
*/
public class SignatureValidator {
- private File dir;
+ private final File dir;
+
+ public SignatureValidator() {
+ this.dir = null;
+ }
+ /**
+ * @param base can be null. Base directory
+ */
public SignatureValidator(File base) {
- dir = base;
+ dir = Objects.requireNonNull(base, "basic directory");
}
+
public boolean validate(String fn, KeySelector ks) throws Exception {
return validate(fn, ks, null);
}
+
public DOMValidateContext getValidateContext(String fn, KeySelector ks) throws Exception {
return getValidateContext(fn, ks, true);
}
- public DOMValidateContext getValidateContext(String fn, KeySelector ks, boolean secureValidation) throws Exception {
- DOMValidateContext domValidateContext;
- try (FileInputStream inputStream = new FileInputStream(new File(dir, fn))){
- domValidateContext = getValidateContext(inputStream, ks, secureValidation);
- domValidateContext.setBaseURI(dir.toURI().toString());
+
+ public DOMValidateContext getValidateContext(InputStream signedXml, KeySelector ks, boolean secureValidation)
+ throws XMLParserException {
+ Document doc = XMLUtils.read(signedXml, false);
+ return getValidateContext(doc, ks, secureValidation);
+ }
+
+
+ public DOMValidateContext getValidateContext(String fileName, KeySelector ks, boolean secureValidation)
+ throws Exception {
+ if (dir == null) {
+ throw new IllegalArgumentException("Basic directory was not set, files not supported.");
}
- return domValidateContext;
+ Document doc = XMLUtils.read(new File(dir, fileName), false);
+ return getValidateContext(doc, ks, secureValidation);
}
- public DOMValidateContext getValidateContext(InputStream inputStream, KeySelector ks, boolean secureValidation)
- throws Exception {
- Document doc = XMLUtils.read(inputStream, false);
+
+ public DOMValidateContext getValidateContext(Document doc, KeySelector ks, boolean secureValidation) {
Element sigElement = getSignatureElement(doc);
if (sigElement == null) {
- throw new Exception("Couldn't find signature Element");
+ throw new IllegalArgumentException("Couldn't find signature Element");
}
DOMValidateContext vc = new DOMValidateContext(ks, sigElement);
vc.setProperty("org.apache.jcp.xml.dsig.secureValidation", secureValidation);
+ if (dir != null) {
+ vc.setBaseURI(dir.toURI().toString());
+ }
return vc;
}
- public boolean validate(String fn, KeySelector ks, URIDereferencer ud)
- throws Exception {
- return validate(fn, ks, ud, true);
+
+ public boolean validate(String fileName, KeySelector ks, URIDereferencer ud) throws Exception {
+ return validate(fileName, ks, ud, true);
}
- public boolean validate(String fn, KeySelector ks, URIDereferencer ud, boolean secureValidation)
- throws Exception {
- DOMValidateContext vc = getValidateContext(fn, ks, secureValidation);
+ public boolean validate(String fileName, KeySelector ks, URIDereferencer ud, boolean secureValidation)
+ throws Exception {
+ DOMValidateContext vc = getValidateContext(fileName, ks, secureValidation);
if (ud != null) {
vc.setURIDereferencer(ud);
}
-
return validate(vc);
}
public boolean validate(DOMValidateContext vc) throws Exception {
-
- XMLSignatureFactory factory = XMLSignatureFactory.getInstance
- ("DOM", new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
+ XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM",
+ new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI());
XMLSignature signature = factory.unmarshalXMLSignature(vc);
boolean coreValidity = signature.validate(vc);
// Check core validation status
if (!coreValidity) {
- // check the validation status of each Reference
- @SuppressWarnings("unchecked")
- Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator();
- while (i.hasNext()) {
- Reference reference = i.next();
- reference.validate(vc);
+ for (Object reference : signature.getSignedInfo().getReferences()) {
+ ((Reference) reference).validate(vc);
}
}
return coreValidity;
}
public static Element getSignatureElement(Document doc) {
- NodeIterator ni = ((DocumentTraversal)doc).createNodeIterator(
- doc.getDocumentElement(), NodeFilter.SHOW_ELEMENT, null, false);
+ NodeIterator ni = ((DocumentTraversal) doc).createNodeIterator(doc.getDocumentElement(),
+ NodeFilter.SHOW_ELEMENT, null, false);
for (Node n = ni.nextNode(); n != null; n = ni.nextNode() ) {
if ("Signature".equals(n.getLocalName())) {
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignatureValidatorEdDSATest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidatorEdDSATest.java
similarity index 93%
rename from src/test/java/javax/xml/crypto/test/dsig/SignatureValidatorEdDSATest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidatorEdDSATest.java
index dca8fe8c..c31ea4ee 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignatureValidatorEdDSATest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignatureValidatorEdDSATest.java
@@ -16,15 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.CsvSource;
+import java.nio.file.Paths;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.test.KeySelectors;
-import java.nio.file.Paths;
+
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,7 +38,7 @@ public class SignatureValidatorEdDSATest extends EdDSATestAbstract {
private SignatureValidator testInstance;
- @org.junit.jupiter.api.BeforeEach
+ @BeforeEach
public void before() {
String base = System.getProperty("basedir", "./");
testInstance = new SignatureValidator(Paths.get(base, "src", "test", "resources", "javax", "xml", "crypto", "dsig", "eddsa").toFile());
diff --git a/src/test/java/javax/xml/crypto/test/dsig/SignedInfoTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignedInfoTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/SignedInfoTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignedInfoTest.java
index 9cc03c38..524d0f28 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/SignedInfoTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/SignedInfoTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.security.Security;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/TestUtils.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TestUtils.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/TestUtils.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TestUtils.java
index eb3d6194..776e5c89 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/TestUtils.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TestUtils.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.ByteArrayInputStream;
import java.io.File;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/TransformTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TransformTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/TransformTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TransformTest.java
index a2b7ce0d..4471ac43 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/TransformTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/TransformTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.util.Collections;
import javax.xml.crypto.XMLStructure;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/ValidateSignatureTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ValidateSignatureTest.java
similarity index 91%
rename from src/test/java/javax/xml/crypto/test/dsig/ValidateSignatureTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ValidateSignatureTest.java
index c007155a..9d04eb39 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/ValidateSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/ValidateSignatureTest.java
@@ -16,20 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.security.Security;
-import org.apache.xml.security.utils.resolver.ResourceResolver;
-import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import javax.xml.crypto.test.KeySelectors;
import javax.xml.crypto.Data;
import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.URIReference;
@@ -39,6 +32,14 @@ import javax.xml.crypto.dsig.XMLSignatureException;
import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.apache.xml.security.utils.resolver.ResourceResolver;
+import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -50,21 +51,16 @@ import static org.junit.jupiter.api.Assertions.fail;
*/
public class ValidateSignatureTest {
- private SignatureValidator validator;
- private File dir;
+ private final SignatureValidator validator;
+ private final File dir;
static {
- Security.insertProviderAt
- (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
+ Security.insertProviderAt(new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1);
ResourceResolver.register(new ResolverLocalFilesystem(), false);
}
public ValidateSignatureTest() {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
-
- dir = new File(base + fs + "src/test/resources" + fs
- + "javax" + fs + "xml" + fs + "crypto", "dsig");
+ dir = resolveFile("src", "test", "resources", "org", "apache", "xml", "security", "test", "javax", "xml", "crypto", "dsig");
validator = new SignatureValidator(dir);
}
@@ -160,9 +156,10 @@ public class ValidateSignatureTest {
*/
static class InvalidURIDereferencer implements URIDereferencer {
boolean dereferenced = false;
- private URIDereferencer ud =
+ private final URIDereferencer ud =
XMLSignatureFactory.getInstance().getURIDereferencer();
+ @Override
public Data dereference(final URIReference ref, XMLCryptoContext ctx)
throws URIReferenceException {
dereferenced = true;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/X509KeySelector.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/X509KeySelector.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/X509KeySelector.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/X509KeySelector.java
index 2af93477..2c31902e 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/X509KeySelector.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/X509KeySelector.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.IOException;
import java.security.Key;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLObjectTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLObjectTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLObjectTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLObjectTest.java
index 76755a3d..3cfb0f32 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLObjectTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLObjectTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.util.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLSignContextTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignContextTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLSignContextTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignContextTest.java
index 12914b0c..53727683 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLSignContextTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignContextTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.dsig.*;
import javax.xml.crypto.dsig.dom.DOMSignContext;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureEdDSATest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureEdDSATest.java
similarity index 93%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLSignatureEdDSATest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureEdDSATest.java
index d4300e97..0fc22027 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureEdDSATest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureEdDSATest.java
@@ -16,27 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
-import org.apache.xml.security.c14n.Canonicalizer;
-import org.apache.xml.security.test.dom.TestUtils;
-import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.XMLUtils;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.CsvSource;
-import org.w3c.dom.Element;
-
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dsig.dom.DOMSignContext;
-import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.dsig.keyinfo.KeyInfo;
-import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
-import javax.xml.crypto.dsig.keyinfo.X509Data;
-import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
-import javax.xml.crypto.dsig.spec.TransformParameterSpec;
-import javax.xml.crypto.test.KeySelectors;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
@@ -50,6 +32,31 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.keyinfo.X509Data;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+
+import org.apache.xml.security.c14n.Canonicalizer;
+import org.apache.xml.security.test.dom.TestUtils;
+import org.apache.xml.security.test.javax.xml.crypto.KeySelectors;
+import org.apache.xml.security.utils.Constants;
+import org.apache.xml.security.utils.XMLUtils;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+import org.w3c.dom.Element;
+
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -57,7 +64,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
* Unit test for EdDSA javax.xml.crypto.dsig.XMLSignature creation
*/
public class XMLSignatureEdDSATest extends EdDSATestAbstract {
- private final SignatureValidator testInstance = new SignatureValidator(null);
+ private final SignatureValidator testInstance = new SignatureValidator();
static {
Security.insertProviderAt
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureFactoryTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureFactoryTest.java
similarity index 84%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLSignatureFactoryTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureFactoryTest.java
index d7428ea7..d5457d6c 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureFactoryTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureFactoryTest.java
@@ -19,24 +19,29 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import java.io.File;
-import java.io.FileInputStream;
import java.security.NoSuchProviderException;
import java.security.Provider;
import java.security.Security;
-import javax.xml.crypto.dsig.keyinfo.*;
-import javax.xml.crypto.*;
-import javax.xml.crypto.dsig.*;
+import javax.xml.crypto.KeySelector;
+import javax.xml.crypto.MarshalException;
+import javax.xml.crypto.NoSuchMechanismException;
+import javax.xml.crypto.URIDereferencer;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.XMLValidateContext;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -132,38 +137,47 @@ public class XMLSignatureFactoryTest {
try {
stuff = factory.unmarshalXMLSignature(
new XMLValidateContext() {
+ @Override
public Object getProperty(String name) { return null; }
+ @Override
public Object setProperty(String name, Object property) {
return null;
}
+ @Override
public String getBaseURI() { return null; }
+ @Override
public void setBaseURI(String uri) { }
+ @Override
public KeySelector getKeySelector() { return null; }
+ @Override
public void setKeySelector(KeySelector ks) { }
+ @Override
public URIDereferencer getURIDereferencer() { return null; }
+ @Override
public void setURIDereferencer(URIDereferencer ud) {}
+ @Override
public Object get(Object key) {return null;}
+ @Override
public Object put(Object key, Object value) {return null;}
+ @Override
public void setDefaultNamespacePrefix(String defPrefix) {}
+ @Override
public String getDefaultNamespacePrefix() {return null;}
+ @Override
public String putNamespacePrefix
(String nsURI, String prefix) {return null;}
+ @Override
public String getNamespacePrefix
(String nsURI, String defPrefix) {return null;}
});
fail("Should throw a CCE for input of wrong type");
} catch (ClassCastException ex) {
} catch (Exception ex) {
- fail("Should raise a CCE instead of " + ex +
- " for wrong inputs");
+ fail("Should raise a CCE instead of " + ex + " for wrong inputs");
}
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- File dir = new File(base + fs +
- "src/test/resources" + fs + "ie" + fs + "baltimore" + fs + "merlin-examples",
- "merlin-xmldsig-twenty-three");
- Document doc = XMLUtils.read(new FileInputStream(new File(dir, "signature.xml")), false);
+ File dir = resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples", "merlin-xmldsig-twenty-three");
+ Document doc = XMLUtils.read(new File(dir, "signature.xml"), false);
NodeList nl = doc.getElementsByTagName("KeyInfo");
try {
stuff = factory.unmarshalXMLSignature
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureTest.java
similarity index 90%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLSignatureTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureTest.java
index 5a2f42b6..2893138c 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLSignatureTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLSignatureTest.java
@@ -19,28 +19,54 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
-
-
-import java.io.*;
-import java.util.*;
-import java.security.*;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.security.Key;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.Provider;
+import java.security.PublicKey;
+import java.security.Security;
+import java.security.Signature;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.crypto.spec.SecretKeySpec;
import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.URIReferenceException;
import javax.xml.crypto.dom.DOMStructure;
-import javax.xml.crypto.dsig.*;
-import javax.xml.crypto.dsig.keyinfo.*;
-import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
-import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
+import javax.xml.crypto.dsig.XMLObject;
+import javax.xml.crypto.dsig.XMLSignContext;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureException;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.XMLValidateContext;
import javax.xml.crypto.dsig.dom.DOMSignContext;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.crypto.spec.SecretKeySpec;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
import org.apache.xml.security.utils.XMLUtils;
import org.junit.jupiter.api.Assumptions;
-import org.w3c.dom.*;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -54,17 +80,17 @@ import static org.junit.jupiter.api.Assertions.fail;
*
*/
public class XMLSignatureTest {
- private XMLSignatureFactory fac;
- private KeyInfoFactory kifac;
- private SignedInfo defSi;
- private KeyInfo defKi;
- private List<XMLObject> objs;
- private String id = "id";
- private String sigValueId = "signatureValueId";
- private Key[] SIGN_KEYS;
- private Key[] VALIDATE_KEYS;
- private SignatureMethod[] SIG_METHODS;
- private URIDereferencer ud;
+ private final XMLSignatureFactory fac;
+ private final KeyInfoFactory kifac;
+ private final SignedInfo defSi;
+ private final KeyInfo defKi;
+ private final List<XMLObject> objs;
+ private final String id = "id";
+ private final String sigValueId = "signatureValueId";
+ private final Key[] SIGN_KEYS;
+ private final Key[] VALIDATE_KEYS;
+ private final SignatureMethod[] SIG_METHODS;
+ private final URIDereferencer ud;
private static final String DSA_SHA256 =
"http://www.w3.org/2009/xmldsig11#dsa-sha256";
@@ -311,11 +337,8 @@ public class XMLSignatureTest {
@org.junit.jupiter.api.Test
public void testSignTemplateWithObjectNSDefs() throws Exception {
- String base = System.getProperty("basedir") == null ? "./"
- : System.getProperty("basedir");
-
- File f = new File(base + "/src/test/resources/javax/xml/crypto/dsig/" +
- "signature-enveloping-rsa-template.xml");
+ File f = resolveFile(
+ "src/test/resources/org/apache/xml/security/test/javax/xml/crypto/dsig/signature-enveloping-rsa-template.xml");
Document doc = XMLUtils.read(new FileInputStream(f), false);
diff --git a/src/test/java/javax/xml/crypto/test/dsig/XMLValidateContextTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLValidateContextTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/XMLValidateContextTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLValidateContextTest.java
index 7bea5fb8..fbf76226 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/XMLValidateContextTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/XMLValidateContextTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig;
+package org.apache.xml.security.test.javax.xml.crypto.dsig;
import javax.xml.crypto.*;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/dom/DOMValidateContextTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/dom/DOMValidateContextTest.java
similarity index 85%
rename from src/test/java/javax/xml/crypto/test/dsig/dom/DOMValidateContextTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/dom/DOMValidateContextTest.java
index a2a19a57..9c452a69 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/dom/DOMValidateContextTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/dom/DOMValidateContextTest.java
@@ -19,13 +19,15 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.dom;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.dom;
-import java.io.*;
+import java.io.File;
+
import javax.xml.crypto.dsig.dom.DOMValidateContext;
-import javax.xml.crypto.test.dsig.TestUtils;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
+import org.apache.xml.security.test.javax.xml.crypto.dsig.TestUtils;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -38,17 +40,13 @@ import static org.junit.jupiter.api.Assertions.fail;
*
*/
public class DOMValidateContextTest {
- private DOMValidateContext domVC;
+ private final DOMValidateContext domVC;
public DOMValidateContextTest() throws Exception {
- String fs = System.getProperty("file.separator");
- String base = System.getProperty("basedir") == null ? "./": System.getProperty("basedir");
- File dir = new File(base + fs +
- "src/test/resources" + fs + "ie" + fs + "baltimore" + fs + "merlin-examples",
+ File dir = XmlSecTestEnvironment.resolveFile("src", "test", "resources", "ie", "baltimore", "merlin-examples",
"merlin-xmldsig-twenty-three");
File input = new File(dir, "signature.xml");
- domVC = (DOMValidateContext)
- TestUtils.getXMLValidateContext("DOM", input, "Reference");
+ domVC = (DOMValidateContext) TestUtils.getXMLValidateContext("DOM", input, "Reference");
}
@org.junit.jupiter.api.Test
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoFactoryTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoFactoryTest.java
similarity index 99%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoFactoryTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoFactoryTest.java
index 6e0c2dd5..46159f29 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoFactoryTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoFactoryTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.math.BigInteger;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoTest.java
index a2a49ba4..9c7f9c05 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyInfoTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyInfoTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.security.Key;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyNameTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyNameTest.java
similarity index 97%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyNameTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyNameTest.java
index 3e3fe809..dc8a5ea9 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyNameTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyNameTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import javax.xml.crypto.dsig.keyinfo.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyValueTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyValueTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyValueTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyValueTest.java
index 4ab7388f..0ddd6bf5 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/KeyValueTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/KeyValueTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.security.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/PGPDataTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/PGPDataTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/PGPDataTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/PGPDataTest.java
index 54c080ea..e755ec5b 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/PGPDataTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/PGPDataTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.util.ArrayList;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/RetrievalMethodTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/RetrievalMethodTest.java
similarity index 98%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/RetrievalMethodTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/RetrievalMethodTest.java
index d7de6ba2..e88da0d0 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/RetrievalMethodTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/RetrievalMethodTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import javax.xml.crypto.dsig.keyinfo.*;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509DataTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509DataTest.java
similarity index 97%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509DataTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509DataTest.java
index b21afc8c..d179552b 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509DataTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509DataTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.util.*;
import java.security.cert.X509Certificate;
diff --git a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509IssuerSerialTest.java b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509IssuerSerialTest.java
similarity index 97%
rename from src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509IssuerSerialTest.java
rename to src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509IssuerSerialTest.java
index b1020732..bb519c2d 100644
--- a/src/test/java/javax/xml/crypto/test/dsig/keyinfo/X509IssuerSerialTest.java
+++ b/src/test/java/org/apache/xml/security/test/javax/xml/crypto/dsig/keyinfo/X509IssuerSerialTest.java
@@ -19,7 +19,7 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
*/
-package javax.xml.crypto.test.dsig.keyinfo;
+package org.apache.xml.security.test.javax.xml.crypto.dsig.keyinfo;
import java.math.BigInteger;
diff --git a/src/test/java/org/apache/xml/security/test/stax/InputProcessorChainTest.java b/src/test/java/org/apache/xml/security/test/stax/InputProcessorChainTest.java
index 3dc4e65d..d2f3aff7 100644
--- a/src/test/java/org/apache/xml/security/test/stax/InputProcessorChainTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/InputProcessorChainTest.java
@@ -42,15 +42,14 @@ public class InputProcessorChainTest {
@BeforeEach
public void setUp() throws Exception {
- Init.init(this.getClass().getClassLoader().getResource("security-config.xml").toURI(),
- this.getClass());
+ Init.init(this.getClass().getClassLoader().getResource("security-config.xml").toURI(), this.getClass());
}
abstract class AbstractInputProcessor implements InputProcessor {
private XMLSecurityConstants.Phase phase = XMLSecurityConstants.Phase.PROCESSING;
- private Set<Object> beforeProcessors = new HashSet<>();
- private Set<Object> afterProcessors = new HashSet<>();
+ private final Set<Object> beforeProcessors = new HashSet<>();
+ private final Set<Object> afterProcessors = new HashSet<>();
@Override
public void addBeforeProcessor(Object processor) {
diff --git a/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamReaderTest.java b/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamReaderTest.java
index 87f1e2d5..6cdb692f 100644
--- a/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamReaderTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamReaderTest.java
@@ -47,10 +47,8 @@ import org.apache.xml.security.stax.impl.DocumentContextImpl;
import org.apache.xml.security.stax.impl.InboundSecurityContextImpl;
import org.apache.xml.security.stax.impl.InputProcessorChainImpl;
import org.apache.xml.security.stax.impl.XMLSecurityStreamReader;
-import org.hamcrest.MatcherAssert;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.xmlunit.matchers.CompareMatcher;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -59,6 +57,7 @@ import static org.hamcrest.Matchers.nullValue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.xmlunit.matchers.CompareMatcher.isSimilarTo;
/**
@@ -107,7 +106,7 @@ public class XMLSecurityStreamReaderTest {
javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new StAXSource(xmlSecurityStreamReader), new StreamResult(baos));
- MatcherAssert.assertThat(readTestFile(), CompareMatcher.isSimilarTo(baos.toString(StandardCharsets.UTF_8.name())));
+ assertThat(readTestFile(), isSimilarTo(baos.toString(StandardCharsets.UTF_8.name())));
}
@Test
@@ -372,7 +371,7 @@ public class XMLSecurityStreamReaderTest {
class EventReaderProcessor implements InputProcessor {
- private XMLStreamReader xmlStreamReader;
+ private final XMLStreamReader xmlStreamReader;
EventReaderProcessor(XMLStreamReader xmlStreamReader) {
this.xmlStreamReader = xmlStreamReader;
diff --git a/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamWriterTest.java b/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamWriterTest.java
index 713aba94..1bf448d8 100644
--- a/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamWriterTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/XMLSecurityStreamWriterTest.java
@@ -208,7 +208,7 @@ public class XMLSecurityStreamWriterTest {
class EventWriterProcessor implements OutputProcessor {
- private XMLEventWriter xmlEventWriter;
+ private final XMLEventWriter xmlEventWriter;
EventWriterProcessor(Writer writer) throws Exception {
XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
diff --git a/src/test/java/org/apache/xml/security/test/stax/encryption/BaltimoreEncTest.java b/src/test/java/org/apache/xml/security/test/stax/encryption/BaltimoreEncTest.java
index 0ae65c21..dc5be4cf 100644
--- a/src/test/java/org/apache/xml/security/test/stax/encryption/BaltimoreEncTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/encryption/BaltimoreEncTest.java
@@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
@@ -55,6 +57,8 @@ import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolvePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
@@ -71,8 +75,8 @@ public class BaltimoreEncTest {
private static PrivateKey rsaKey;
private XMLInputFactory xmlInputFactory;
- private TransformerFactory transformerFactory = TransformerFactory.newInstance();
- private boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
+ private final TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ private final boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
@BeforeEach
public void setUp() throws Exception {
@@ -81,15 +85,8 @@ public class BaltimoreEncTest {
xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setEventAllocator(new XMLSecEventAllocator());
- String filename =
- "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml";
- String basedir = System.getProperty("basedir");
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
- File f = new File(filename);
-
- Document doc = XMLUtils.read(new java.io.FileInputStream(f), false);
+ File f = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+ Document doc = XMLUtils.read(f, false);
cardNumber = retrieveCCNumber(doc);
@@ -97,12 +94,8 @@ public class BaltimoreEncTest {
nodeCount = countNodes(doc);
// rsaKey
- filename = "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8";
- if (basedir != null && basedir.length() != 0) {
- filename = basedir + "/" + filename;
- }
-
- byte[] pkcs8Bytes = JavaUtils.getBytesFromFile(filename);
+ Path rsaKeyPath = resolvePath("src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8");
+ byte[] pkcs8Bytes = Files.readAllBytes(rsaKeyPath);
PKCS8EncodedKeySpec pkcs8Spec = new PKCS8EncodedKeySpec(pkcs8Bytes);
// Create a key factory
@@ -130,7 +123,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -168,7 +161,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -205,7 +198,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -242,7 +235,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -275,7 +268,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -312,7 +305,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -349,7 +342,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -384,7 +377,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
@@ -415,7 +408,7 @@ public class BaltimoreEncTest {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transformer.transform(new DOMSource(document), new StreamResult(baos));
- XMLStreamReader xmlStreamReader = null;
+ XMLStreamReader xmlStreamReader;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
}
diff --git a/src/test/java/org/apache/xml/security/test/stax/encryption/EncryptionCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/encryption/EncryptionCreationTest.java
index 995bce64..89418280 100644
--- a/src/test/java/org/apache/xml/security/test/stax/encryption/EncryptionCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/encryption/EncryptionCreationTest.java
@@ -77,7 +77,7 @@ public class EncryptionCreationTest {
private XMLInputFactory xmlInputFactory;
- private boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
+ private final boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
@BeforeEach
public void setUp() throws Exception {
@@ -116,7 +116,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -175,7 +175,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -275,7 +275,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -334,7 +334,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -395,7 +395,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -453,7 +453,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -522,7 +522,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -591,7 +591,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -661,7 +661,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -733,7 +733,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -796,7 +796,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -867,7 +867,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -946,7 +946,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1017,7 +1017,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1088,7 +1088,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1155,7 +1155,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1216,7 +1216,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1279,7 +1279,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1344,7 +1344,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1411,7 +1411,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document =
XMLUtils.read(new ByteArrayInputStream(baos.toByteArray()), false);
@@ -1472,7 +1472,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1535,7 +1535,7 @@ public class EncryptionCreationTest {
xmlStreamWriter.close();
}
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1598,7 +1598,7 @@ public class EncryptionCreationTest {
xmlStreamWriter.close();
}
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -1658,7 +1658,7 @@ public class EncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
diff --git a/src/test/java/org/apache/xml/security/test/stax/encryption/KeyWrapEncryptionCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/encryption/KeyWrapEncryptionCreationTest.java
index 58c3d621..abe68076 100644
--- a/src/test/java/org/apache/xml/security/test/stax/encryption/KeyWrapEncryptionCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/encryption/KeyWrapEncryptionCreationTest.java
@@ -66,7 +66,7 @@ public class KeyWrapEncryptionCreationTest {
private static KeyPair rsaKeyPair;
private static boolean bcInstalled;
- private XMLInputFactory xmlInputFactory;
+ private final XMLInputFactory xmlInputFactory;
@BeforeAll
public static void setup() throws Exception {
@@ -144,7 +144,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -212,7 +212,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -280,7 +280,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -346,7 +346,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -411,7 +411,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -476,7 +476,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -541,7 +541,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -611,7 +611,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -681,7 +681,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -751,7 +751,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -821,7 +821,7 @@ public class KeyWrapEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
diff --git a/src/test/java/org/apache/xml/security/test/stax/encryption/SymmetricEncryptionCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/encryption/SymmetricEncryptionCreationTest.java
index 63c45c16..38a9249e 100644
--- a/src/test/java/org/apache/xml/security/test/stax/encryption/SymmetricEncryptionCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/encryption/SymmetricEncryptionCreationTest.java
@@ -60,7 +60,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class SymmetricEncryptionCreationTest {
private static boolean bcInstalled;
- private XMLInputFactory xmlInputFactory;
+ private final XMLInputFactory xmlInputFactory;
@BeforeAll
public static void setup() throws Exception {
@@ -129,7 +129,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -190,7 +190,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -251,7 +251,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -312,7 +312,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -373,7 +373,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -434,7 +434,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -494,7 +494,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -557,7 +557,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -619,7 +619,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -681,7 +681,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
@@ -743,7 +743,7 @@ public class SymmetricEncryptionCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
diff --git a/src/test/java/org/apache/xml/security/test/stax/encryption/XMLEncryption11Test.java b/src/test/java/org/apache/xml/security/test/stax/encryption/XMLEncryption11Test.java
index 921f346a..326beae5 100644
--- a/src/test/java/org/apache/xml/security/test/stax/encryption/XMLEncryption11Test.java
+++ b/src/test/java/org/apache/xml/security/test/stax/encryption/XMLEncryption11Test.java
@@ -85,8 +85,8 @@ public class XMLEncryption11Test {
private int nodeCount;
private XMLInputFactory xmlInputFactory;
- private TransformerFactory transformerFactory = TransformerFactory.newInstance();
- private boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
+ private final TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ private final boolean isIBMJdK = System.getProperty("java.vendor").contains("IBM");
@BeforeEach
public void setUp() throws Exception {
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java
index cf76f2d6..4b990ec9 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java
@@ -35,6 +35,7 @@ import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xml.security.stax.ext.SecurePart;
+import org.apache.xml.security.test.XmlSecTestEnvironment;
import org.apache.xml.security.test.dom.DSNamespaceContext;
import org.apache.xml.security.test.stax.utils.XMLSecEventAllocator;
import org.apache.xml.security.utils.resolver.ResourceResolverContext;
@@ -55,18 +56,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class AbstractSignatureCreationTest {
- protected static String BASEDIR;
protected static boolean bcInstalled;
protected XMLInputFactory xmlInputFactory;
@BeforeAll
public static void setup() throws Exception {
- String baseDir = System.getProperty("basedir");
- if (baseDir == null) {
- baseDir = new File(".").getCanonicalPath();
- }
- BASEDIR = baseDir;
org.apache.xml.security.Init.init();
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureVerificationTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureVerificationTest.java
index 8ceafb7a..af88a9ab 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureVerificationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureVerificationTest.java
@@ -73,7 +73,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class AbstractSignatureVerificationTest {
- protected static String BASEDIR;
protected static boolean bcInstalled;
protected XMLInputFactory xmlInputFactory;
@@ -81,12 +80,6 @@ public class AbstractSignatureVerificationTest {
@BeforeAll
public static void setup() throws Exception {
- String baseDir = System.getProperty("basedir");
- if (baseDir == null) {
- baseDir = new File(".").getCanonicalPath();
- }
- BASEDIR = baseDir;
-
Init.init(AbstractSignatureVerificationTest.class.getClassLoader().getResource("security-config.xml").toURI(),
AbstractSignatureVerificationTest.class);
org.apache.xml.security.Init.init();
@@ -284,8 +277,7 @@ public class AbstractSignatureVerificationTest {
}
if (additionalReferences != null) {
- for (int i = 0; i < additionalReferences.size(); i++) {
- ReferenceInfo referenceInfo = additionalReferences.get(i);
+ for (ReferenceInfo referenceInfo : additionalReferences) {
if (referenceInfo.isBinary()) {
sig.addDocument(referenceInfo.getResource(), null, referenceInfo.getDigestMethod());
} else {
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreRemoteReferenceTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreRemoteReferenceTest.java
index b252dc6c..69995196 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreRemoteReferenceTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreRemoteReferenceTest.java
@@ -100,19 +100,19 @@ public class BaltimoreRemoteReferenceTest {
private static final String RSA_MOD_15 =
"119329599520775465924022606372296074200605535144668022371076132699687141255709737174045123732723708369916816841003864525367987020386846259527839447764154836329045089822539554380766373753731213041983461774133690352071525882671690061465545291631004133563847076169228588340351767773527127920590711638729665138889";
- public static final String RSA_MOD_23 =
+ private static final String RSA_MOD_23 =
"120296660343377233375194603471583429595399323282961590789247283561085360125953681886041302745068082823944886660427610854189129731366720128135385763222506487464694459023332289451444021068559820208783293910859489936002104550722931306546063549539810916052250046814103434685758992623250037867084412382118349636279";
private static final String RSA_PUB =
"65537";
- private XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
- private TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ private final XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
+ private final TransformerFactory transformerFactory = TransformerFactory.newInstance();
@BeforeAll
public static void setUp() throws Exception {
XMLSec.init();
- Init.init(BaltimoreRemoteReferenceTest.class.getClassLoader().getResource("security-config-allow-same-doc.xml").toURI(),
- BaltimoreRemoteReferenceTest.class);
+ Init.init(BaltimoreRemoteReferenceTest.class.getClassLoader().getResource("security-config-allow-same-doc.xml")
+ .toURI(), BaltimoreRemoteReferenceTest.class);
org.apache.xml.security.Init.init();
}
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/PKSignatureCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/PKSignatureCreationTest.java
index 51a0f81c..3eb1af00 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/PKSignatureCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/PKSignatureCreationTest.java
@@ -97,7 +97,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -140,7 +140,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -183,7 +183,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -226,7 +226,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -271,7 +271,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -316,7 +316,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -361,7 +361,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -406,7 +406,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -451,7 +451,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -496,7 +496,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -532,7 +532,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
OutboundXMLSec outboundXMLSec = XMLSec.getOutboundXMLSec(properties);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- XMLStreamWriter xmlStreamWriter = outboundXMLSec.processOutMessage(baos, "UTF-8");
+ XMLStreamWriter xmlStreamWriter = outboundXMLSec.processOutMessage(baos, StandardCharsets.UTF_8.name());
InputStream sourceDocument =
this.getClass().getClassLoader().getResourceAsStream(
@@ -542,7 +542,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -585,7 +585,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -628,7 +628,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -671,7 +671,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -714,7 +714,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -757,7 +757,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
@@ -802,7 +802,7 @@ public class PKSignatureCreationTest extends AbstractSignatureCreationTest {
XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
xmlStreamWriter.close();
- // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8.name()));
+ // System.out.println("Got:\n" + new String(baos.toByteArray(), StandardCharsets.UTF_8));
Document document = null;
try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) {
document = XMLUtils.read(is, false);
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationReferenceURIResolverTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationReferenceURIResolverTest.java
index 4430d677..a8875089 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationReferenceURIResolverTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationReferenceURIResolverTest.java
@@ -21,12 +21,16 @@ package org.apache.xml.security.test.stax.signature;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.nio.charset.StandardCharsets;
+import java.security.GeneralSecurityException;
import java.security.Key;
import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.HashMap;
@@ -55,6 +59,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import static org.apache.xml.security.test.XmlSecTestEnvironment.resolveFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -78,11 +83,7 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
properties.setActions(actions);
// Set the key up
- KeyStore keyStore = KeyStore.getInstance("jks");
- keyStore.load(
- this.getClass().getClassLoader().getResource("transmitter.jks").openStream(),
- "default".toCharArray()
- );
+ KeyStore keyStore = getKeyStore();
Key key = keyStore.getKey("transmitter", "default".toCharArray());
properties.setSignatureKey(key);
X509Certificate cert = (X509Certificate) keyStore.getCertificate("transmitter");
@@ -92,8 +93,7 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
new SecurePart(new QName("urn:example:po", "PaymentInfo"), SecurePart.Modifier.Element);
properties.addSignaturePart(securePart);
- File file = new File(BASEDIR +
- "/src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml").getCanonicalFile();
+ File file = resolveFile("src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
securePart = new SecurePart(file.toURI().toString(),
new String[]{"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"},
XMLSecurityConstants.NS_XMLDSIG_SHA1);
@@ -129,11 +129,7 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
properties.setActions(actions);
// Set the key up
- KeyStore keyStore = KeyStore.getInstance("jks");
- keyStore.load(
- this.getClass().getClassLoader().getResource("transmitter.jks").openStream(),
- "default".toCharArray()
- );
+ KeyStore keyStore = getKeyStore();
Key key = keyStore.getKey("transmitter", "default".toCharArray());
properties.setSignatureKey(key);
X509Certificate cert = (X509Certificate) keyStore.getCertificate("transmitter");
@@ -143,8 +139,8 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
new SecurePart(new QName("urn:example:po", "PaymentInfo"), SecurePart.Modifier.Element);
properties.addSignaturePart(securePart);
- File file = new File(BASEDIR +
- "/target/test-classes/org/apache/xml/security/test/stax/signature/SignatureVerificationReferenceURIResolverTest.class").getCanonicalFile();
+ File file = resolveFile(
+ "target/test-classes/org/apache/xml/security/test/stax/signature/SignatureVerificationReferenceURIResolverTest.class");
securePart = new SecurePart(file.toURI().toString(),
null,
XMLSecurityConstants.NS_XMLDSIG_SHA1);
@@ -191,11 +187,7 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
properties.setActions(actions);
// Set the key up
- KeyStore keyStore = KeyStore.getInstance("jks");
- keyStore.load(
- this.getClass().getClassLoader().getResource("transmitter.jks").openStream(),
- "default".toCharArray()
- );
+ KeyStore keyStore = getKeyStore();
Key key = keyStore.getKey("transmitter", "default".toCharArray());
properties.setSignatureKey(key);
X509Certificate cert = (X509Certificate) keyStore.getCertificate("transmitter");
@@ -241,11 +233,7 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
properties.setActions(actions);
// Set the key up
- KeyStore keyStore = KeyStore.getInstance("jks");
- keyStore.load(
- this.getClass().getClassLoader().getResource("transmitter.jks").openStream(),
- "default".toCharArray()
- );
+ KeyStore keyStore = getKeyStore();
Key key = keyStore.getKey("transmitter", "default".toCharArray());
properties.setSignatureKey(key);
X509Certificate cert = (X509Certificate) keyStore.getCertificate("transmitter");
@@ -282,4 +270,13 @@ public class SignatureCreationReferenceURIResolverTest extends AbstractSignature
// Verify using DOM
verifyUsingDOM(document, cert, properties.getSignatureSecureParts());
}
+
+
+ private KeyStore getKeyStore() throws GeneralSecurityException, IOException {
+ KeyStore keyStore = KeyStore.getInstance("jks");
+ try (InputStream inputStream = getClass().getClassLoader().getResource("transmitter.jks").openStream()) {
+ keyStore.load(inputStream, "default".toCharArray());
+ }
+ return keyStore;
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java b/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
index ab7db167..2cac5f34 100644
--- a/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
+++ b/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
... 832 lines suppressed ...