Add wfc compat for 2 3 x (#41)

* Port WCF changes and consolidate SoapUtil

* Updates involving ISSUER_SERIAL, needs tests

* checkstyle fix and add test dependency

* Ignore IDE files

* Missed JavaDoc update

* Remove JDK truststore and associated test.

Fix Java Doc.

* Update Java doc for exception handling
diff --git a/.gitignore b/.gitignore
index 52eff50..8378a92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,11 @@
 .project
 .ruleset
 .settings/
+.idea
+*.iml
 target/
 velocity.log
 .pmdruleset.xml
+*.bat
+*.log
 
diff --git a/integration/pom.xml b/integration/pom.xml
index 97c5b40..df46ea5 100644
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -47,6 +47,13 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.wss4j</groupId>
+            <artifactId>wss4j-ws-security-common</artifactId>
+            <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.wss4j</groupId>
             <artifactId>wss4j-ws-security-dom</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
diff --git a/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java b/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java
index 693cd6d..536789a 100644
--- a/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java
+++ b/integration/src/test/java/org/apache/wss4j/integration/test/kerberos/KerberosTest.java
@@ -48,6 +48,7 @@
 import org.apache.wss4j.common.spnego.SpnegoTokenContext;
 import org.apache.wss4j.common.token.BinarySecurity;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 
@@ -67,7 +68,6 @@
 import org.apache.wss4j.stax.setup.InboundWSSec;
 import org.apache.wss4j.stax.setup.OutboundWSSec;
 import org.apache.wss4j.stax.setup.WSSec;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.xml.security.exceptions.XMLSecurityException;
diff --git a/ws-security-common/src/main/java/org/apache/wss4j/common/token/DOMX509IssuerSerial.java b/ws-security-common/src/main/java/org/apache/wss4j/common/token/DOMX509IssuerSerial.java
index d22e1cd..276fbfa 100644
--- a/ws-security-common/src/main/java/org/apache/wss4j/common/token/DOMX509IssuerSerial.java
+++ b/ws-security-common/src/main/java/org/apache/wss4j/common/token/DOMX509IssuerSerial.java
@@ -21,6 +21,7 @@
 
 import org.apache.wss4j.common.WSS4JConstants;
 import org.apache.wss4j.common.util.DOM2Writer;
+import org.apache.wss4j.common.util.CommaDelimiterRfc2253Name;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -63,13 +64,24 @@
      * Constructor.
      */
     public DOMX509IssuerSerial(Document doc, String issuer, BigInteger serialNumber) {
+        this(doc,issuer,serialNumber,false);
+    }
+
+    /**
+     * Constructor.
+     */
+    public DOMX509IssuerSerial(Document doc, String issuer, BigInteger serialNumber, boolean isCommaDelimited) {
         if (issuer == null) {
             throw new NullPointerException("The issuerName cannot be null");
         }
         if (serialNumber == null) {
             throw new NullPointerException("The serialNumber cannot be null");
         }
-        this.issuer = new X500Principal(issuer).getName();
+        if (isCommaDelimited) {
+            this.issuer = new CommaDelimiterRfc2253Name().execute(new X500Principal(issuer).getName());
+        } else {
+            this.issuer = new X500Principal(issuer).getName();
+        }
         this.serialNumber = serialNumber;
 
         element =
diff --git a/ws-security-common/src/main/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253Name.java b/ws-security-common/src/main/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253Name.java
new file mode 100644
index 0000000..9b9926d
--- /dev/null
+++ b/ws-security-common/src/main/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253Name.java
@@ -0,0 +1,110 @@
+/**
+ * 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.wss4j.common.util;
+
+import javax.naming.InvalidNameException;
+import javax.naming.ldap.LdapName;
+import javax.naming.ldap.Rdn;
+import java.util.List;
+
+/**
+ * Convert a RFC 2253 String using \ to escape unicode characters into one that is compatible
+ * with Microsoft's WFC and Java.<p><br>
+ *
+ * <strong>Detail:</strong>
+ * Converts a string in RFC2253 format and replaces \ escaped characters with a string quoted representation.
+ * It also places a space before the next RDN. <p> <br>
+ * There are two alternate ways an RFC 2253 RDN can escape unicode characters, either with '\'
+ * or by using quotes. Java seems to recognize both formats but Microsoft's WFC only seems to recognize quotes.
+ * Since implementations may escape any characters and string is already in valid format no knowledge is
+ * required of escapable characters.
+ */
+public class CommaDelimiterRfc2253Name {
+
+    /**
+     * Return rfc2253String that delimits using quotes.<p>
+     *
+     *
+     * @param rfc2253String a string in rfc 2253 format using a \ as delimiter.
+     * @return Rdn in quoted form if required.
+     * @throws  IllegalArgumentException if an error occurred parsing the rfc2256 string.
+     * However, since its assumed that a valid RFC 2253 string, X500Principal.getName(),
+     * is passed its unlikely that this exception would ever be thrown.
+     */
+    public String execute(String rfc2253String) {
+        StringBuilder commaDNBuilder = new StringBuilder();
+        try {
+            LdapName ldapname = new LdapName(rfc2253String);
+            List<Rdn> rdns = ldapname.getRdns();
+
+            for (int i = rdns.size() - 1; i >= 0; i--) {
+                Rdn rdn = rdns.get(i);
+                String rdnString = rdn.toString();
+                String appendString;
+                if (requiresDoubleQuoting(rdnString)) {
+                    appendString = convertToDoubleQuotes(rdnString);
+                } else {
+                    appendString = rdnString;
+                }
+                if (i == rdns.size() - 1) {
+                    commaDNBuilder.append(appendString);
+                } else {
+                    commaDNBuilder.append(", ").append(appendString);
+                }
+            }
+        } catch (InvalidNameException e) {
+            throw new IllegalArgumentException(" The distinguished name cannot be parsed : " + rfc2253String);
+        }
+        return commaDNBuilder.toString();
+    }
+
+    private boolean requiresDoubleQuoting(String rdnString) {
+        return rdnString.contains("\\");
+    }
+
+    private String convertToDoubleQuotes(String rdnString) {
+        StringBuilder quotedString = new StringBuilder();
+        int indexEquals = rdnString.indexOf("=");
+        String firstPart = rdnString.substring(0, indexEquals + 1);
+        String lastPart = rdnString.substring(indexEquals + 1);
+        String secondPart = unEscapeRfc2253RdnSubPart(lastPart);
+        return quotedString.append(firstPart).append('"').append(secondPart).append('"').toString();
+    }
+
+    String unEscapeRfc2253RdnSubPart(String value) {
+        char[] charArray = value.toCharArray();
+        boolean previousEscape = false;
+        StringBuilder unescapedRdnPart = new StringBuilder();
+        for (char currentChar : charArray) {
+            if (currentChar != '\\') {
+                previousEscape = false;
+                unescapedRdnPart.append(currentChar);
+            } else if (previousEscape) {
+                unescapedRdnPart.append(currentChar);
+                previousEscape = false;
+            } else {
+                previousEscape = true;
+            }
+        }
+
+        return unescapedRdnPart.toString();
+    }
+
+}
diff --git a/ws-security-common/src/test/java/org/apache/wss4j/common/token/DOMX509IssuerSerialTest.java b/ws-security-common/src/test/java/org/apache/wss4j/common/token/DOMX509IssuerSerialTest.java
new file mode 100644
index 0000000..72fbe9b
--- /dev/null
+++ b/ws-security-common/src/test/java/org/apache/wss4j/common/token/DOMX509IssuerSerialTest.java
@@ -0,0 +1,36 @@
+package org.apache.wss4j.common.token;
+
+import org.apache.wss4j.common.util.SOAPUtil;
+import org.junit.jupiter.api.Test;
+import org.w3c.dom.Document;
+
+import java.math.BigInteger;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class DOMX509IssuerSerialTest {
+
+    @Test
+    public void whenConstructingForWsSecUsersUsingConstructorThenUseDefaultIssuerDelimiting() throws Exception {
+        Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+        String input = "CN=EOIR,OU=Some Unit";
+
+        BigInteger serialNumber = new BigInteger("123");
+        DOMX509IssuerSerial subject = new DOMX509IssuerSerial(doc, input, serialNumber);
+        String expected = "CN=EOIR,OU=Some Unit";
+        assertEquals(expected,subject.getIssuer());
+    }
+
+    @Test
+    public void whenConstructingForWsSecUsersUsingNewConstructorWithCommaDelimitedThenUseWcfCompatibleDelimiting() throws Exception {
+        Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+        String input = "CN=EOIR,OU=Some Unit";
+
+        BigInteger serialNumber = new BigInteger("123");
+        DOMX509IssuerSerial subject = new DOMX509IssuerSerial(doc, input, serialNumber,true);
+        String expected = "CN=EOIR, OU=Some Unit";
+        assertEquals(expected,subject.getIssuer());
+        System.out.println(subject.getIssuer());
+    }
+
+}
\ No newline at end of file
diff --git a/ws-security-common/src/test/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253NameTest.java b/ws-security-common/src/test/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253NameTest.java
new file mode 100644
index 0000000..896a8d8
--- /dev/null
+++ b/ws-security-common/src/test/java/org/apache/wss4j/common/util/CommaDelimiterRfc2253NameTest.java
@@ -0,0 +1,131 @@
+/**
+ * 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.wss4j.common.util;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import javax.security.auth.x500.X500Principal;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.PKIXParameters;
+import java.security.cert.TrustAnchor;
+import java.security.cert.X509Certificate;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class CommaDelimiterRfc2253NameTest {
+
+	private static final String TYPICAL_CA ="CN=Entrust Certification Authority - L1K,OU=(c) 2012 Entrust\\, Inc. - for authorized use only,OU=See www.entrust.net/legal-terms,O=Entrust\\, Inc.,C=US";
+	private static final String QUOTES_TYPICAL_CA ="CN=Entrust Certification Authority - L1K, OU=\"(c) 2012 Entrust, Inc. - for authorized use only\", OU=See www.entrust.net/legal-terms, O=\"Entrust, Inc.\", C=US";
+
+	private CommaDelimiterRfc2253Name subject = new CommaDelimiterRfc2253Name();
+
+
+	@Test
+	void whenMultipleAttributesArePresentThenSpaceIsPlacedAfterComma() {
+		String actual = new CommaDelimiterRfc2253Name().execute("CN=EOIR,OU=Some Unit,DC=Another place");
+		assertEquals("CN=EOIR, OU=Some Unit, DC=Another place",actual);
+	}
+	@Test
+	void whenRdnContainsACommaThenTheRdnIsSurroundedByDoubleQuotes() {
+		String actual = new CommaDelimiterRfc2253Name().execute(TYPICAL_CA);
+		assertEquals(QUOTES_TYPICAL_CA,actual);
+	}
+
+	@Test
+	void whenRdnIsInvalidThenExpectException() {
+		Assertions.assertThrows(IllegalArgumentException.class, () -> {
+			subject.execute("invalid");
+		});
+	}
+
+
+	@Test
+	void whenCallingUnescapeWithStringNoEscapesThenNoChangesAreMade() throws Exception {
+		String input = "This is a string with (c) no escaped! sStrings $";
+		String actual = subject.unEscapeRfc2253RdnSubPart(input);
+		assertEquals(input,actual,"Expect that string is unchanged");
+	}
+
+
+	@Test
+	void whenCallingUnescapeWithStringThenItUnescapesAppropiateCharacters() throws Exception {
+		String input = "This is a string with escapes \\,\\; \\\\ and \\< then \\> \\\"Copyright Apache\\\" ";
+		String expected = "This is a string with escapes ,; \\ and < then > \"Copyright Apache\" ";
+		String actual = subject.unEscapeRfc2253RdnSubPart(input);
+		assertEquals(expected,actual,"Expect that string is unescaped");
+	}
+
+
+	@Test
+	void whenCallingUnescapeWithStringWithMultiValueRdnThenItUnescapesAppropriateCharacters() throws Exception {
+		String input = "OU=Sales\\+CN=J. Smith\\,O=Widget Inc.\\,C=US";
+		String expected = "OU=Sales+CN=J. Smith,O=Widget Inc.,C=US";
+		String actual = subject.unEscapeRfc2253RdnSubPart(input);
+		assertEquals(expected,actual,"Expect that string is unescaped");
+	}
+
+	@Test
+	public void testThatACommaDelimitedDnStringAndABackSlashEscapedDnProducesTheSameX509PrincipalUsingDefaultTruststore()
+			throws KeyStoreException, InvalidAlgorithmParameterException, CertificateException, NoSuchAlgorithmException, IOException {
+		KeyStore keystore = loadDefaultKeyStore();
+		PKIXParameters params = new PKIXParameters(keystore);
+		for (TrustAnchor ta : params.getTrustAnchors()) {
+			X509Certificate cert = ta.getTrustedCert();
+			assertThatTransformIsEquivalent(cert.getSubjectX500Principal().getName());
+		}
+	}
+
+	private void assertThatTransformIsEquivalent(String dnString) {
+		// The expected value below recreates what is done in the token class by recreating the  X500Principal using getName()
+		// even though the calling methods already used a X500Principal.getName()  to pass the value in the first place ,
+		// this seems wasteful but I believe there is a reason for this in the wss4j code ...
+		// Searching for different RFC 2253 parsers , this one :
+		// https://www.codeproject.com/Articles/9788/An-RFC-2253-Compliant-Distinguished-Name-Parser
+		// mentioned that its not possible to recreate the original binary because of the RFC allows multibyte characters  using # encoding.
+		// Indeed w/o this additional calls to X500Principal.getName() this test will fail for one of the CA which indeed uses # encoding
+		// because the equals uses the X500Name.canonicalDn string for comparison which if used directly from the keystore would
+		// still contain the multibyte characters.
+		// Since wss4j does not send multibyte characters, this tests uses of new X500Principal(dnString)
+		// accurately reflects change usage.
+
+		X500Principal expected = new X500Principal(dnString);
+		X500Principal recreatedX509principal = new X500Principal(subject.execute(dnString));
+		assertEquals(expected, recreatedX509principal);
+	}
+
+	private KeyStore loadDefaultKeyStore() throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException {
+		String filename = System.getProperty("java.home") + "/lib/security/cacerts".replace('/', File.separatorChar);
+		FileInputStream is = new FileInputStream(filename);
+		KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
+		String password = "changeit";
+		keystore.load(is, password.toCharArray());
+		return keystore;
+	}
+
+
+}
\ No newline at end of file
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/utils/SOAPUtil.java b/ws-security-common/src/test/java/org/apache/wss4j/common/util/SOAPUtil.java
similarity index 70%
rename from ws-security-stax/src/test/java/org/apache/wss4j/stax/test/utils/SOAPUtil.java
rename to ws-security-common/src/test/java/org/apache/wss4j/common/util/SOAPUtil.java
index cde1348..5921c50 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/utils/SOAPUtil.java
+++ b/ws-security-common/src/test/java/org/apache/wss4j/common/util/SOAPUtil.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.wss4j.stax.test.utils;
+package org.apache.wss4j.common.util;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.soap.MessageFactory;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
 public class SOAPUtil {
-
     public static final String SAMPLE_SOAP_MSG =
             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                     + "<SOAP-ENV:Envelope "
@@ -39,19 +39,28 @@
                     + "</SOAP-ENV:Body>"
                     + "</SOAP-ENV:Envelope>";
 
+    private static final org.slf4j.Logger LOG =  org.slf4j.LoggerFactory.getLogger(SOAPUtil.class);
+
     private static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+    private static MessageFactory saajFactory = null;
 
     static {
         factory.setNamespaceAware(true);
+        try {
+            saajFactory = MessageFactory.newInstance();
+        } catch (Exception e) {
+            LOG.debug("can't create SAAJ MessageFactory", e);
+        }
     }
 
     /**
      * Convert an SOAP Envelope as a String to a org.w3c.dom.Document.
      */
     public static org.w3c.dom.Document toSOAPPart(String xml) throws Exception {
-        InputStream in = new ByteArrayInputStream(xml.getBytes());
-        DocumentBuilder builder = factory.newDocumentBuilder();
-        return builder.parse(in);
+        try (InputStream in = new ByteArrayInputStream(xml.getBytes())) {
+            DocumentBuilder builder = factory.newDocumentBuilder();
+            return builder.parse(in);
+        }
     }
 
     /**
@@ -62,4 +71,14 @@
         return builder.parse(in);
     }
 
+
+    /**
+     * Convert an SOAP Envelope as a String to a javax.xml.soap.SOAPPart.
+     */
+    public static javax.xml.soap.SOAPPart toSAAJSOAPPart(String xml) throws Exception {
+        try (InputStream in = new ByteArrayInputStream(xml.getBytes())) {
+            return saajFactory.createMessage(null, in).getSOAPPart();
+        }
+    }
+	
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSConstants.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSConstants.java
index f99dbe6..34f92ef 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSConstants.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSConstants.java
@@ -191,9 +191,9 @@
 
     /**
      * Sets the {@link
-     * org.apache.wss4j.dom.message.WSSecSignature#build(Document, Crypto, WSSecHeader)
-     * } or the {@link
-     * org.apache.wss4j.dom.message.WSSecEncrypt#build(Document, Crypto, WSSecHeader)
+     *org.apache.wss4j.dom.message.WSSecSignature#build(Crypto)
+     *} or the {@link
+     *org.apache.wss4j.dom.message.WSSecEncrypt#build(Crypto, SecretKey)
      * } method to send the issuer name and the serial number of a certificate to
      * the receiver.
      * <p/>
@@ -201,7 +201,9 @@
      * and the serial number of the signing certificate are sent to the
      * receiver. This reduces the amount of data being sent. The encryption
      * method uses the public key associated with this certificate to encrypt
-     * the symmetric key used to encrypt data.
+     * the symmetric key used to encrypt data. 
+     * The name format will delimit unicode characters with a '\' which is not compatible with Microsoft's WCF stack.
+     * To send issuer name with format that is compatible with WCF and Java use {@link #ISSUER_SERIAL_QUOTE_FORMAT}
      * <p/>
      * Please refer to WS Security specification X509 1.1 profile, chapter 3.3.3
      */
@@ -217,7 +219,7 @@
      * The encryption method uses the public key associated with this certificate
      * to encrypt the symmetric key used to encrypt data. The certificate is
      * converted into a <code>KeyIdentifier</code> token and sent to the receiver.
-     * Thus the complete certificate data is transfered to receiver.
+     * Thus the complete certificate data is transferred to receiver.
      * The X509 profile recommends to use {@link #ISSUER_SERIAL} instead
      * of sending the whole certificate.
      * <p/>
@@ -319,9 +321,29 @@
      */
     public static final int ENDPOINT_KEY_IDENTIFIER = 14;
 
+
+    /**
+     *Sets the {@link org.apache.wss4j.dom.message.WSSecSignature#build(Crypto)}
+     * or the {@link org.apache.wss4j.dom.message.WSSecEncrypt#build(Crypto, SecretKey)}
+     * method to send the issuer name and the serial number of a certificate to the receiver.
+     *<p/>
+     * In contrast to {@link #BST_DIRECT_REFERENCE} only the issuer name
+     * and the serial number of the signing certificate are sent to the
+     * receiver. This reduces the amount of data being sent. The encryption
+     * method uses the public key associated with this certificate to encrypt
+     * the symmetric key used to encrypt data.
+     * The issuer name format will use a quote delimited Rfc 2253 format if necessary which is recognized by the Microsoft's WCF stack.
+     * It also places a space before each subsequent RDN also required for WCF interoperability.
+     * In addition, this format is know to be correctly interpreted by Java.
+     *<p/>
+     *Please refer to WS Security specification X509 1.1 profile, chapter 3.3.3
+     * <p/>
+     */
+    public static final int ISSUER_SERIAL_QUOTE_FORMAT = 15;
+
     /*
-     * The following values are bits that can be combined to for a set.
-     * Be careful when selecting new values.
+     * The following values are bits that can be combined to form a set.
+     * Be careful when adding new constants.
      */
     public static final int NO_SECURITY = 0;
     public static final int UT = 0x1; // perform UsernameToken
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
index a2f994b..9e8f7e8 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
@@ -568,6 +568,7 @@
             }
             int tmp = id;
             if (!(tmp == WSConstants.ISSUER_SERIAL
+                    || tmp == WSConstants.ISSUER_SERIAL_QUOTE_FORMAT
                     || tmp == WSConstants.BST_DIRECT_REFERENCE
                     || tmp == WSConstants.X509_KEY_IDENTIFIER
                     || tmp == WSConstants.SKI_KEY_IDENTIFIER
@@ -697,6 +698,7 @@
             int tmp = id;
             actionToken.setKeyIdentifierId(tmp);
             if (!(tmp == WSConstants.ISSUER_SERIAL
+                    || tmp == WSConstants.ISSUER_SERIAL_QUOTE_FORMAT
                     || tmp == WSConstants.X509_KEY_IDENTIFIER
                     || tmp == WSConstants.SKI_KEY_IDENTIFIER
                     || tmp == WSConstants.BST_DIRECT_REFERENCE
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandlerConstants.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandlerConstants.java
index c96c0b5..ce0191e 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandlerConstants.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandlerConstants.java
@@ -87,6 +87,8 @@
      * </li>
      * <li><code>IssuerSerial</code> for {@link WSConstants#ISSUER_SERIAL}
      * </li>
+     * <li><code>IssuerSerialQuoteFormat</code> for {@link WSConstants#ISSUER_SERIAL_QUOTE_FORMAT}
+     * </li>
      * <li><code>X509KeyIdentifier</code> for {@link WSConstants#X509_KEY_IDENTIFIER}
      * </li>
      * <li><code>SKIKeyIdentifier</code> for {@link WSConstants#SKI_KEY_IDENTIFIER}
@@ -103,6 +105,7 @@
     static {
         keyIdentifier.put("DirectReference", WSConstants.BST_DIRECT_REFERENCE);
         keyIdentifier.put("IssuerSerial", WSConstants.ISSUER_SERIAL);
+        keyIdentifier.put("IssuerSerialQuoteFormat", WSConstants.ISSUER_SERIAL_QUOTE_FORMAT);
         keyIdentifier.put("X509KeyIdentifier", WSConstants.X509_KEY_IDENTIFIER);
         keyIdentifier.put("SKIKeyIdentifier", WSConstants.SKI_KEY_IDENTIFIER);
         keyIdentifier.put("Thumbprint", WSConstants.THUMBPRINT_IDENTIFIER);
@@ -114,6 +117,7 @@
      * Get the key identifier type corresponding to the parameter. This is intended for internal
      * use only. Valid values for "parameter" are:
      *  - "IssuerSerial"
+     *  - "IssuerSerialQuoteFormat"
      *  - "DirectReference"
      *  - "X509KeyIdentifier"
      *  - "Thumbprint"
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java
index 9ec1b3d..c7f232a 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java
@@ -108,6 +108,7 @@
      *
      * @param keyIdType
      * @see WSConstants#ISSUER_SERIAL
+     * @see WSConstants#ISSUER_SERIAL_QUOTE_FORMAT
      * @see WSConstants#BST_DIRECT_REFERENCE
      * @see WSConstants#X509_KEY_IDENTIFIER
      * @see WSConstants#THUMBPRINT_IDENTIFIER
@@ -123,6 +124,7 @@
      *
      * @return The <code>keyIdentifyerType</code>.
      * @see WSConstants#ISSUER_SERIAL
+     * @see WSConstants#ISSUER_SERIAL_QUOTE_FORMAT
      * @see WSConstants#BST_DIRECT_REFERENCE
      * @see WSConstants#X509_KEY_IDENTIFIER
      * @see WSConstants#SKI_KEY_IDENTIFIER
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java
index e8b6c10..9176e6f 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDerivedKeyBase.java
@@ -341,6 +341,7 @@
     private X509Certificate[] getSigningCerts() throws WSSecurityException {
         X509Certificate[] certs = null;
         if (keyIdentifierType == WSConstants.ISSUER_SERIAL
+            || keyIdentifierType == WSConstants.ISSUER_SERIAL_QUOTE_FORMAT
             || keyIdentifierType == WSConstants.X509_KEY_IDENTIFIER
             || keyIdentifierType == WSConstants.SKI_KEY_IDENTIFIER
             || keyIdentifierType == WSConstants.THUMBPRINT_IDENTIFIER) {
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
index c5b3316..94d9e57 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
@@ -357,7 +357,8 @@
                 secToken.addTokenType(WSConstants.WSS_ENC_KEY_VALUE_TYPE);
             }
             keyInfo.addUnknownElement(secToken.getElement());
-        } else if (!encryptSymmKey && keyIdentifierType == WSConstants.ISSUER_SERIAL) {
+        } else if (!encryptSymmKey && (keyIdentifierType == WSConstants.ISSUER_SERIAL
+                || keyIdentifierType == WSConstants.ISSUER_SERIAL_QUOTE_FORMAT)) {
             SecurityTokenReference secToken = new SecurityTokenReference(getDocument());
             if (addWSUNamespace) {
                 secToken.addWSUNamespace();
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java
index 55a0ce2..0388a3c 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncryptedKey.java
@@ -282,18 +282,11 @@
                 break;
 
             case WSConstants.ISSUER_SERIAL:
-                String issuer = remoteCert.getIssuerX500Principal().getName();
-                java.math.BigInteger serialNumber = remoteCert.getSerialNumber();
-                DOMX509IssuerSerial domIssuerSerial =
-                    new DOMX509IssuerSerial(
-                        getDocument(), issuer, serialNumber
-                    );
-                DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
-                secToken.setUnknownElement(domX509Data.getElement());
+                addIssuerSerial(remoteCert, secToken, false);
+                break;
 
-                if (includeEncryptionToken) {
-                    addBST(remoteCert);
-                }
+            case WSConstants.ISSUER_SERIAL_QUOTE_FORMAT:
+                addIssuerSerial(remoteCert, secToken,true);
                 break;
 
             case WSConstants.BST_DIRECT_REFERENCE:
@@ -371,6 +364,20 @@
 
     }
 
+    private void addIssuerSerial(X509Certificate remoteCert, SecurityTokenReference secToken, boolean isCommaDelimited)
+            throws WSSecurityException {
+        String issuer = remoteCert.getIssuerX500Principal().getName();
+        java.math.BigInteger serialNumber = remoteCert.getSerialNumber();
+        DOMX509IssuerSerial domIssuerSerial =
+                new DOMX509IssuerSerial(getDocument(), issuer, serialNumber, isCommaDelimited);
+        DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
+        secToken.setUnknownElement(domX509Data.getElement());
+
+        if (includeEncryptionToken) {
+            addBST(remoteCert);
+        }
+    }
+
     /**
      * Now we need to setup the EncryptedKey header block:
      *  1) create a EncryptedKey element and set a wsu:Id for it
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java
index 2b8cd7a..1249d7a 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignature.java
@@ -217,20 +217,15 @@
                 secRef.setReference(ref);
                 break;
 
-            case WSConstants.ISSUER_SERIAL:
-                String issuer = certs[0].getIssuerX500Principal().getName();
-                java.math.BigInteger serialNumber = certs[0].getSerialNumber();
-                DOMX509IssuerSerial domIssuerSerial =
-                    new DOMX509IssuerSerial(getDocument(), issuer, serialNumber);
-                DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
-                secRef.setUnknownElement(domX509Data.getElement());
+                case WSConstants.ISSUER_SERIAL:
+                    addIssuerSerial(certs,false);
+                    break;
 
-                if (includeSignatureToken) {
-                    addBST(certs);
-                }
-                break;
+                case WSConstants.ISSUER_SERIAL_QUOTE_FORMAT:
+                    addIssuerSerial(certs,true);
+                    break;
 
-            case WSConstants.X509_KEY_IDENTIFIER:
+                case WSConstants.X509_KEY_IDENTIFIER:
                 secRef.setKeyIdentifier(certs[0]);
                 break;
 
@@ -344,6 +339,20 @@
         }
     }
 
+    private void addIssuerSerial(X509Certificate[] certs,boolean isCommaDelimited) throws WSSecurityException {
+        String issuer = certs[0].getIssuerX500Principal().getName();
+        java.math.BigInteger serialNumber = certs[0].getSerialNumber();
+
+        DOMX509IssuerSerial domIssuerSerial
+                = new DOMX509IssuerSerial(getDocument(), issuer, serialNumber, isCommaDelimited);
+        DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
+        secRef.setUnknownElement(domX509Data.getElement());
+
+        if (includeSignatureToken) {
+            addBST(certs);
+        }
+    }
+
     protected void marshalKeyInfo(WSDocInfo wsDocInfo) throws WSSecurityException {
         List<XMLStructure> kiChildren = null;
         if (customKeyInfoElement == null) {
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/saml/WSSecSignatureSAML.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/saml/WSSecSignatureSAML.java
index c905bbd..d110fcc 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/saml/WSSecSignatureSAML.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/saml/WSSecSignatureSAML.java
@@ -401,14 +401,12 @@
                     secRef.setKeyIdentifierThumb(cert);
                     break;
 
-                case WSConstants.ISSUER_SERIAL:
-                    final String issuer = cert.getIssuerDN().getName();
-                    final java.math.BigInteger serialNumber = cert.getSerialNumber();
-                    final DOMX509IssuerSerial domIssuerSerial =
-                            new DOMX509IssuerSerial(getDocument(), issuer, serialNumber);
-                    final DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
-                    secRef.setUnknownElement(domX509Data.getElement());
-                    break;
+                    case WSConstants.ISSUER_SERIAL:
+                        addIssuerSerial(cert, secRef, false);
+                        break;
+                    case WSConstants.ISSUER_SERIAL_QUOTE_FORMAT:
+                        addIssuerSerial(cert, secRef, true);
+                        break;
 
                 default:
                     throw new WSSecurityException(
@@ -447,6 +445,15 @@
         marshalKeyInfo(getWsDocInfo());
     }
 
+    private void addIssuerSerial(X509Certificate cert, SecurityTokenReference secRef, boolean isQuoteDelimited) {
+        final String issuer = cert.getIssuerDN().getName();
+        final java.math.BigInteger serialNumber = cert.getSerialNumber();
+        final DOMX509IssuerSerial domIssuerSerial =
+                new DOMX509IssuerSerial(getDocument(), issuer, serialNumber, isQuoteDelimited);
+        final DOMX509Data domX509Data = new DOMX509Data(getDocument(), domIssuerSerial);
+        secRef.setUnknownElement(domX509Data.getElement());
+    }
+
     /**
      * Prepend the SAML elements to the elements already in the Security header.
      *
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/SOAPUtil.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/SOAPUtil.java
deleted file mode 100644
index 713d99b..0000000
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/SOAPUtil.java
+++ /dev/null
@@ -1,80 +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 org.apache.wss4j.dom.common;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.soap.MessageFactory;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-public class SOAPUtil {
-
-    public static final String SAMPLE_SOAP_MSG =
-        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
-        + "<SOAP-ENV:Envelope "
-        +   "xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" "
-        +   "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "
-        +   "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
-        +   "<SOAP-ENV:Body>"
-        +       "<add xmlns=\"http://ws.apache.org/counter/counter_port_type\">"
-        +           "<value xmlns=\"\">15</value>"
-        +       "</add>"
-        +   "</SOAP-ENV:Body>"
-        + "</SOAP-ENV:Envelope>";
-
-    private static final org.slf4j.Logger LOG =
-        org.slf4j.LoggerFactory.getLogger(SOAPUtil.class);
-
-    private static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-    private static MessageFactory saajFactory = null;
-
-    static {
-        factory.setNamespaceAware(true);
-        try {
-            saajFactory = MessageFactory.newInstance();
-        } catch (Exception e) {
-            LOG.debug("can't create SAAJ MessageFactory", e);
-        }
-    }
-
-    /**
-     * Convert an SOAP Envelope as a String to a org.w3c.dom.Document.
-     */
-    public static org.w3c.dom.Document toSOAPPart(String xml) throws Exception {
-        try (InputStream in = new ByteArrayInputStream(xml.getBytes())) {
-            DocumentBuilder builder = factory.newDocumentBuilder();
-            return builder.parse(in);
-        }
-    }
-
-
-    /**
-     * Convert an SOAP Envelope as a String to a javax.xml.soap.SOAPPart.
-     */
-    public static javax.xml.soap.SOAPPart toSAAJSOAPPart(String xml) throws Exception {
-        try (InputStream in = new ByteArrayInputStream(xml.getBytes())) {
-            return saajFactory.createMessage(null, in).getSOAPPart();
-        }
-    }
-
-}
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CertificateStoreTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CertificateStoreTest.java
index 878851f..0231c8f 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CertificateStoreTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CertificateStoreTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.components.crypto;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoProviderTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoProviderTest.java
index 4b68e70..e8e9770 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoProviderTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoProviderTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.components.crypto;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 import org.apache.wss4j.common.crypto.Crypto;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
index 453c2d3..d1a7efd 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/components/crypto/CryptoTest.java
@@ -23,9 +23,9 @@
 import java.security.KeyStore;
 import java.util.Properties;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomCrypto;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
index 65b7cb6..5b3b9f0 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
@@ -21,9 +21,9 @@
 
 import java.util.Collections;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
index b299427..e59dee7 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
@@ -19,11 +19,11 @@
 
 package org.apache.wss4j.dom.handler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomAction;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.CustomProcessor;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomTokenTest.java
index defaf7b..0349518 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomTokenTest.java
@@ -29,10 +29,10 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.apache.wss4j.common.ext.WSPasswordCallback;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SecurityActionTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SecurityActionTokenTest.java
index 98f05cb..46f7f06 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SecurityActionTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SecurityActionTokenTest.java
@@ -35,12 +35,12 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CombinedCallbackHandler;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureConfirmationTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureConfirmationTest.java
index f4b4065..09e90fd 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureConfirmationTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureConfirmationTest.java
@@ -31,12 +31,12 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 import org.apache.wss4j.dom.engine.WSSecurityEngineResult;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureUTAliasTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureUTAliasTest.java
index 79ba660..f0500e5 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureUTAliasTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/SignatureUTAliasTest.java
@@ -27,9 +27,9 @@
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/UseReqSigCertTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/UseReqSigCertTest.java
index d867e9f..e0e9a18 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/UseReqSigCertTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/UseReqSigCertTest.java
@@ -24,11 +24,11 @@
 import java.util.List;
 
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/WSHandlerGetPasswordTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/WSHandlerGetPasswordTest.java
index eec81bc..e4009b4 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/WSHandlerGetPasswordTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/WSHandlerGetPasswordTest.java
@@ -21,9 +21,9 @@
 
 import java.util.Collections;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/AttachmentTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/AttachmentTest.java
index 9077853..53a17cd 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/AttachmentTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/AttachmentTest.java
@@ -47,10 +47,10 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.AttachmentUtils;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 import org.apache.wss4j.dom.handler.RequestData;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/CertErrorTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/CertErrorTest.java
index da828c6..135bf25 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/CertErrorTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/CertErrorTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyActionTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyActionTest.java
index 364dfdf..83e2163 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyActionTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyActionTest.java
@@ -27,6 +27,7 @@
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.w3c.dom.Document;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
@@ -35,7 +36,6 @@
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyTest.java
index ca84198..683a180 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/DerivedKeyTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptedDataInHeaderTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptedDataInHeaderTest.java
index 9a4bb5d..732fe5b 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptedDataInHeaderTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptedDataInHeaderTest.java
@@ -23,9 +23,9 @@
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionAlgorithmSuiteTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionAlgorithmSuiteTest.java
index 70ae453..d316c1a 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionAlgorithmSuiteTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionAlgorithmSuiteTest.java
@@ -27,10 +27,10 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionCRLTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionCRLTest.java
index 049665c..4831f5c 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionCRLTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionCRLTest.java
@@ -23,11 +23,11 @@
 
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.w3c.dom.Document;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionGCMTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionGCMTest.java
index d48c7a2..3d60808 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionGCMTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionGCMTest.java
@@ -24,10 +24,10 @@
 import javax.security.auth.callback.CallbackHandler;
 
 import org.apache.wss4j.common.bsp.BSPRule;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionPartsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionPartsTest.java
index d414135..d53d893 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionPartsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionPartsTest.java
@@ -19,11 +19,11 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionTest.java
index 1046648..7a18a6b 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/EncryptionTest.java
@@ -35,13 +35,13 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ModifiedRequestTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ModifiedRequestTest.java
index d0d3a64..34c5c18 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ModifiedRequestTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ModifiedRequestTest.java
@@ -37,11 +37,11 @@
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.util.DateUtil;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/NoSoapPrefixSignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/NoSoapPrefixSignatureTest.java
index eea7fd3..e26b4c5 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/NoSoapPrefixSignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/NoSoapPrefixSignatureTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordEncryptorTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordEncryptorTest.java
index adfaeff..35c601e 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordEncryptorTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordEncryptorTest.java
@@ -32,11 +32,11 @@
 import org.apache.wss4j.common.crypto.PasswordEncryptor;
 import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.common.util.Loader;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordTypeTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordTypeTest.java
index adffde8..7c18387 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordTypeTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/PasswordTypeTest.java
@@ -21,9 +21,9 @@
 
 import java.util.Collections;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ReplayTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ReplayTest.java
index de74a7f..b2b9bf6 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ReplayTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/ReplayTest.java
@@ -25,10 +25,10 @@
 import javax.security.auth.callback.CallbackHandler;
 
 import org.apache.wss4j.common.cache.EHCacheReplayCache;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/RequireSignedEncryptedDataElementsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/RequireSignedEncryptedDataElementsTest.java
index da3f912..1647209 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/RequireSignedEncryptedDataElementsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/RequireSignedEncryptedDataElementsTest.java
@@ -28,10 +28,10 @@
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SKISignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SKISignatureTest.java
index 9db0165..dc3de38 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SKISignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SKISignatureTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/STRSignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/STRSignatureTest.java
index 8e76e78..e0f513e 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/STRSignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/STRSignatureTest.java
@@ -19,12 +19,12 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SecurityContextTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SecurityContextTokenTest.java
index 08c6712..6e3e6e2 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SecurityContextTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SecurityContextTokenTest.java
@@ -21,9 +21,9 @@
 
 import javax.xml.crypto.dsig.SignatureMethod;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 import org.apache.wss4j.dom.engine.WSSecurityEngineResult;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAKITest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAKITest.java
index 00697bf..63a7240 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAKITest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAKITest.java
@@ -27,9 +27,9 @@
 import org.apache.wss4j.common.crypto.Merlin;
 import org.apache.wss4j.common.crypto.MerlinAKI;
 import org.apache.wss4j.common.util.Loader;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAlgorithmSuiteTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAlgorithmSuiteTest.java
index 086f2c8..3d662bf 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAlgorithmSuiteTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureAlgorithmSuiteTest.java
@@ -33,9 +33,9 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCRLTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCRLTest.java
index b89e257..42216e4 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCRLTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCRLTest.java
@@ -21,8 +21,8 @@
 
 import java.security.cert.X509Certificate;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertConstraintsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertConstraintsTest.java
index 5608cb4..9a2f492 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertConstraintsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertConstraintsTest.java
@@ -22,8 +22,8 @@
 import java.util.Collections;
 import java.util.regex.Pattern;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
index 47f3a49..9854242 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java
index 5c6633c..38ef0c4 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java
@@ -19,11 +19,11 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureIssuerCertConstraintsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureIssuerCertConstraintsTest.java
index 0c09f02..6ab3344 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureIssuerCertConstraintsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureIssuerCertConstraintsTest.java
@@ -25,9 +25,9 @@
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureKeyValueTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureKeyValueTest.java
index 2209386..ecb4ff2 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureKeyValueTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureKeyValueTest.java
@@ -22,6 +22,7 @@
 import java.util.Collections;
 
 import org.apache.wss4j.common.principal.PublicKeyPrincipal;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.w3c.dom.Document;
 import org.apache.wss4j.common.bsp.BSPRule;
 import org.apache.wss4j.common.crypto.Crypto;
@@ -29,7 +30,6 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignaturePartsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignaturePartsTest.java
index eb86675..09e01c6 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignaturePartsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignaturePartsTest.java
@@ -21,12 +21,12 @@
 
 import org.apache.wss4j.common.WSEncryptionPart;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureProviderTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureProviderTest.java
index 2449af9..8626010 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureProviderTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureProviderTest.java
@@ -24,10 +24,10 @@
 
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureTest.java
index 02d47b4..28c4d44 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureTest.java
@@ -43,11 +43,11 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.token.Reference;
 import org.apache.wss4j.common.token.SecurityTokenReference;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureWSS651Test.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureWSS651Test.java
index c8c6551..29ca054 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureWSS651Test.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureWSS651Test.java
@@ -24,9 +24,9 @@
 import org.apache.wss4j.common.WSEncryptionPart;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignedBSTTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignedBSTTest.java
index 36e9753..d420dea 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignedBSTTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignedBSTTest.java
@@ -28,10 +28,10 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.crypto.CryptoType;
 import org.apache.wss4j.common.token.X509Security;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SymmetricSignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SymmetricSignatureTest.java
index 6c1469e..48d4bd8 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SymmetricSignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SymmetricSignatureTest.java
@@ -29,10 +29,10 @@
 import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.xml.crypto.dsig.SignatureMethod;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.common.SecretKeyCallbackHandler;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/TimestampTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/TimestampTest.java
index e483f4b..1994b27 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/TimestampTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/TimestampTest.java
@@ -31,10 +31,10 @@
 import org.apache.wss4j.common.bsp.BSPRule;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.DateUtil;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.WSTimeSource;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTDerivedKeyTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTDerivedKeyTest.java
index 9b6a1a4..916e62c 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTDerivedKeyTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTDerivedKeyTest.java
@@ -30,11 +30,11 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.token.SecurityTokenReference;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.UsernameTokenUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.EncodedPasswordCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTSignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTSignatureTest.java
index e5ceb7a..b04adba 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTSignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UTSignatureTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
index 6ac1257..c4b18f4 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
@@ -35,14 +35,10 @@
 import org.apache.wss4j.common.bsp.BSPRule;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
-import org.apache.wss4j.common.util.DateUtil;
-import org.apache.wss4j.common.util.UsernameTokenUtil;
-import org.apache.wss4j.common.util.WSTimeSource;
-import org.apache.wss4j.common.util.XMLUtils;
+import org.apache.wss4j.common.util.*;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.EncodedPasswordCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
index 0e039dd..401963e 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
@@ -40,11 +40,11 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.Attachment;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 import org.apache.wss4j.dom.handler.HandlerAction;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
index 6c03ce5..ad9f04a 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.wss4j.dom.message.token;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BinarySecurityTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BinarySecurityTokenTest.java
index af3d5b5..402549d 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BinarySecurityTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BinarySecurityTokenTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.wss4j.dom.message.token;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/SecurityTokenReferenceTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/SecurityTokenReferenceTest.java
index e260dec..aa3557e 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/SecurityTokenReferenceTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/SecurityTokenReferenceTest.java
@@ -27,8 +27,8 @@
 import org.apache.wss4j.common.token.Reference;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.util.DOM2Writer;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/WCFUsernameTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/WCFUsernameTokenTest.java
index d2f15ab..7dd730b 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/WCFUsernameTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/WCFUsernameTokenTest.java
@@ -27,8 +27,8 @@
 
 import org.apache.wss4j.common.bsp.BSPRule;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/FaultCodeTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/FaultCodeTest.java
index f5c403a..6da2e16 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/FaultCodeTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/FaultCodeTest.java
@@ -35,8 +35,8 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.token.Reference;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
index 357e226..e834e45 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
@@ -37,11 +37,11 @@
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.token.BinarySecurity;
 import org.apache.wss4j.common.token.X509Security;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/SecurityHeaderTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/SecurityHeaderTest.java
index 1a0e083..26326dc 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/SecurityHeaderTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/SecurityHeaderTest.java
@@ -19,8 +19,7 @@
 
 package org.apache.wss4j.dom.misc;
 
-import org.apache.wss4j.dom.common.SOAPUtil;
-
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
 
 import org.junit.jupiter.api.Test;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/EncryptedKeyDataRefTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/EncryptedKeyDataRefTest.java
index c94c6bd..24b9ada 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/EncryptedKeyDataRefTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/EncryptedKeyDataRefTest.java
@@ -25,10 +25,10 @@
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/ReferenceListDataRefTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/ReferenceListDataRefTest.java
index 79d5251..40120ad 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/ReferenceListDataRefTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/processor/ReferenceListDataRefTest.java
@@ -25,10 +25,10 @@
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAlgorithmSuiteTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAlgorithmSuiteTest.java
index d512a29..c2f236e 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAlgorithmSuiteTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAlgorithmSuiteTest.java
@@ -21,6 +21,7 @@
 
 import javax.xml.crypto.dsig.CanonicalizationMethod;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.apache.wss4j.common.crypto.AlgorithmSuite;
@@ -29,7 +30,6 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAuthnTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAuthnTest.java
index bf507c1..c050dcd 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAuthnTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlAuthnTest.java
@@ -25,12 +25,12 @@
 import org.apache.wss4j.common.saml.SAMLCallback;
 import org.apache.wss4j.common.saml.SAMLUtil;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomSamlAssertionValidator;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlConditionsTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlConditionsTest.java
index 088fad8..b1354d5 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlConditionsTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlConditionsTest.java
@@ -35,12 +35,12 @@
 import org.apache.wss4j.common.saml.bean.NameIDBean;
 import org.apache.wss4j.common.saml.bean.ProxyRestrictionBean;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomSamlAssertionValidator;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlNegativeTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlNegativeTest.java
index ae27f98..2e605aa 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlNegativeTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlNegativeTest.java
@@ -20,12 +20,12 @@
 package org.apache.wss4j.dom.saml;
 
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.AbstractSAMLCallbackHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlReferenceTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlReferenceTest.java
index 07534ca..d19e724 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlReferenceTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlReferenceTest.java
@@ -21,12 +21,12 @@
 
 import org.apache.wss4j.common.WSEncryptionPart;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenActionTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenActionTest.java
index c5d9e3c..9963c72 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenActionTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenActionTest.java
@@ -25,6 +25,7 @@
 
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.w3c.dom.Document;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
@@ -37,7 +38,6 @@
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenCustomSignatureTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenCustomSignatureTest.java
index 2521c15..e1b4f4d 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenCustomSignatureTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenCustomSignatureTest.java
@@ -39,12 +39,12 @@
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenDerivedTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenDerivedTest.java
index 594f286..4a44e9b 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenDerivedTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenDerivedTest.java
@@ -34,12 +34,12 @@
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.token.SecurityTokenReference;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenHOKTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenHOKTest.java
index c98780f..09849f5 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenHOKTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenHOKTest.java
@@ -20,11 +20,11 @@
 package org.apache.wss4j.dom.saml;
 
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenSVTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenSVTest.java
index e74c6c8..4e54199 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenSVTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenSVTest.java
@@ -20,13 +20,13 @@
 package org.apache.wss4j.dom.saml;
 
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.CustomHandler;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
index 3b8ab8b..8261de8 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
@@ -47,6 +47,7 @@
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.util.DOM2Writer;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.CustomHandler;
@@ -55,7 +56,6 @@
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
 import org.apache.wss4j.dom.common.SAMLElementCallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SignedSamlTokenHOKTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SignedSamlTokenHOKTest.java
index ec8ed6e..f556528 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SignedSamlTokenHOKTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SignedSamlTokenHOKTest.java
@@ -20,12 +20,12 @@
 package org.apache.wss4j.dom.saml;
 
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDataRef;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
 import org.apache.wss4j.dom.common.SAML2CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.engine.WSSecurityEngine;
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
index e3c69ed..ade3c16 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
@@ -35,10 +35,10 @@
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.token.BinarySecurity;
 import org.apache.wss4j.common.token.X509Security;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.SAML1CallbackHandler;
-import org.apache.wss4j.dom.common.SOAPUtil;
 
 import org.apache.wss4j.dom.common.UsernamePasswordCallbackHandler;
 import org.apache.wss4j.dom.engine.WSSConfig;
diff --git a/ws-security-policy-stax/pom.xml b/ws-security-policy-stax/pom.xml
index 9ba6e3e..452ec26 100644
--- a/ws-security-policy-stax/pom.xml
+++ b/ws-security-policy-stax/pom.xml
@@ -54,6 +54,13 @@
         </dependency>
         <dependency>
             <groupId>org.apache.wss4j</groupId>
+            <artifactId>wss4j-ws-security-common</artifactId>
+            <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.wss4j</groupId>
             <artifactId>wss4j-ws-security-stax</artifactId>
             <version>${project.version}</version>
             <classifier>tests</classifier>
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java
index 1b601b2..48f5b87 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java
@@ -52,6 +52,7 @@
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 
@@ -70,7 +71,6 @@
 import org.apache.wss4j.stax.setup.InboundWSSec;
 import org.apache.wss4j.stax.setup.OutboundWSSec;
 import org.apache.wss4j.stax.setup.WSSec;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.xml.security.exceptions.XMLSecurityException;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AttachmentTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AttachmentTest.java
index 6c7c325..62d21dd 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AttachmentTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AttachmentTest.java
@@ -52,8 +52,8 @@
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.AttachmentUtils;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
 import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.stax.ext.WSSConstants;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
index 64634af..db52ac9 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
@@ -40,6 +40,7 @@
 import org.apache.wss4j.common.derivedKey.ConversationConstants;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
@@ -58,7 +59,6 @@
 import org.apache.wss4j.stax.setup.InboundWSSec;
 import org.apache.wss4j.stax.setup.OutboundWSSec;
 import org.apache.wss4j.stax.setup.WSSec;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.xml.security.stax.securityEvent.SecurityEvent;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
index 01a1698..a52d744 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
@@ -38,6 +38,7 @@
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.derivedKey.ConversationConstants;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
@@ -56,7 +57,6 @@
 import org.apache.wss4j.stax.setup.InboundWSSec;
 import org.apache.wss4j.stax.setup.OutboundWSSec;
 import org.apache.wss4j.stax.setup.WSSec;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.SecretKeyCallbackHandler;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/XOPAttachmentTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/XOPAttachmentTest.java
index b2e330f..a599924 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/XOPAttachmentTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/XOPAttachmentTest.java
@@ -41,9 +41,9 @@
 import org.apache.wss4j.common.crypto.Merlin;
 import org.apache.wss4j.common.ext.Attachment;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.wss4j.dom.common.SOAPUtil;
 import org.apache.wss4j.dom.message.AttachmentCallbackHandler;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
 import org.apache.wss4j.dom.message.WSSecHeader;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenHOKTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenHOKTest.java
index 984494f..1a3d8aa 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenHOKTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenHOKTest.java
@@ -43,6 +43,7 @@
 import org.apache.wss4j.common.saml.bean.Version;
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
@@ -57,7 +58,6 @@
 import org.apache.wss4j.stax.setup.WSSec;
 import org.apache.wss4j.stax.test.AbstractTestBase;
 import org.apache.wss4j.stax.test.CallbackHandlerImpl;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.xml.security.stax.securityEvent.SecurityEvent;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenReferenceTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenReferenceTest.java
index 849c62a..4af9433 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenReferenceTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenReferenceTest.java
@@ -46,6 +46,7 @@
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
@@ -60,7 +61,6 @@
 import org.apache.wss4j.stax.setup.WSSec;
 import org.apache.wss4j.stax.test.AbstractTestBase;
 import org.apache.wss4j.stax.test.CallbackHandlerImpl;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.xml.security.stax.securityEvent.SecurityEvent;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenTest.java
index f8fd820..ecfcd4f 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SAMLTokenTest.java
@@ -49,6 +49,7 @@
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
 import org.apache.wss4j.common.token.SecurityTokenReference;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.common.KeystoreCallbackHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
@@ -61,7 +62,6 @@
 import org.apache.wss4j.stax.setup.OutboundWSSec;
 import org.apache.wss4j.stax.setup.WSSec;
 import org.apache.wss4j.stax.test.AbstractTestBase;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.apache.wss4j.stax.test.utils.XmlReaderToWriter;
 import org.apache.wss4j.stax.validate.SamlTokenValidatorImpl;
diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SamlTokenDerivedTest.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SamlTokenDerivedTest.java
index c259d5e..49acedf 100644
--- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SamlTokenDerivedTest.java
+++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/saml/SamlTokenDerivedTest.java
@@ -36,6 +36,7 @@
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.builder.SAML1Constants;
 import org.apache.wss4j.common.token.SecurityTokenReference;
+import org.apache.wss4j.common.util.SOAPUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.message.WSSecDKSign;
@@ -48,7 +49,6 @@
 import org.apache.wss4j.stax.setup.WSSec;
 import org.apache.wss4j.stax.test.AbstractTestBase;
 import org.apache.wss4j.stax.test.CallbackHandlerImpl;
-import org.apache.wss4j.stax.test.utils.SOAPUtil;
 import org.apache.wss4j.stax.test.utils.StAX2DOM;
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;