You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2021/09/29 08:24:33 UTC
[ws-wss4j] branch 2_4_x-fixes updated: Add wfc compat for 2 3 x
(#41)
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch 2_4_x-fixes
in repository https://gitbox.apache.org/repos/asf/ws-wss4j.git
The following commit(s) were added to refs/heads/2_4_x-fixes by this push:
new 0e8b29b Add wfc compat for 2 3 x (#41)
0e8b29b is described below
commit 0e8b29b9fa7247ee718c738544c5fa9fd8eff553
Author: Rob Leland <80...@users.noreply.github.com>
AuthorDate: Wed Sep 29 03:51:42 2021 -0400
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
---
.gitignore | 4 +
integration/pom.xml | 7 ++
.../integration/test/kerberos/KerberosTest.java | 2 +-
.../wss4j/common/token/DOMX509IssuerSerial.java | 14 ++-
.../common/util/CommaDelimiterRfc2253Name.java | 110 +++++++++++++++++
.../common/token/DOMX509IssuerSerialTest.java | 36 ++++++
.../common/util/CommaDelimiterRfc2253NameTest.java | 131 +++++++++++++++++++++
.../org/apache/wss4j/common/util}/SOAPUtil.java | 29 ++++-
.../java/org/apache/wss4j/dom/WSConstants.java | 36 ++++--
.../org/apache/wss4j/dom/handler/WSHandler.java | 2 +
.../wss4j/dom/handler/WSHandlerConstants.java | 4 +
.../org/apache/wss4j/dom/message/WSSecBase.java | 2 +
.../wss4j/dom/message/WSSecDerivedKeyBase.java | 1 +
.../org/apache/wss4j/dom/message/WSSecEncrypt.java | 3 +-
.../wss4j/dom/message/WSSecEncryptedKey.java | 29 +++--
.../apache/wss4j/dom/message/WSSecSignature.java | 33 ++++--
.../apache/wss4j/dom/saml/WSSecSignatureSAML.java | 23 ++--
.../java/org/apache/wss4j/dom/common/SOAPUtil.java | 80 -------------
.../components/crypto/CertificateStoreTest.java | 2 +-
.../dom/components/crypto/CryptoProviderTest.java | 2 +-
.../wss4j/dom/components/crypto/CryptoTest.java | 2 +-
.../apache/wss4j/dom/handler/CallbackRefTest.java | 2 +-
.../dom/handler/CustomActionProcessorTest.java | 2 +-
.../apache/wss4j/dom/handler/CustomTokenTest.java | 2 +-
.../wss4j/dom/handler/SecurityActionTokenTest.java | 2 +-
.../dom/handler/SignatureConfirmationTest.java | 2 +-
.../wss4j/dom/handler/SignatureUTAliasTest.java | 2 +-
.../wss4j/dom/handler/UseReqSigCertTest.java | 2 +-
.../dom/handler/WSHandlerGetPasswordTest.java | 2 +-
.../apache/wss4j/dom/message/AttachmentTest.java | 2 +-
.../apache/wss4j/dom/message/CertErrorTest.java | 2 +-
.../wss4j/dom/message/DerivedKeyActionTest.java | 2 +-
.../apache/wss4j/dom/message/DerivedKeyTest.java | 2 +-
.../dom/message/EncryptedDataInHeaderTest.java | 2 +-
.../dom/message/EncryptionAlgorithmSuiteTest.java | 2 +-
.../wss4j/dom/message/EncryptionCRLTest.java | 2 +-
.../wss4j/dom/message/EncryptionGCMTest.java | 2 +-
.../wss4j/dom/message/EncryptionPartsTest.java | 2 +-
.../apache/wss4j/dom/message/EncryptionTest.java | 2 +-
.../wss4j/dom/message/ModifiedRequestTest.java | 2 +-
.../dom/message/NoSoapPrefixSignatureTest.java | 2 +-
.../wss4j/dom/message/PasswordEncryptorTest.java | 2 +-
.../apache/wss4j/dom/message/PasswordTypeTest.java | 2 +-
.../org/apache/wss4j/dom/message/ReplayTest.java | 2 +-
.../RequireSignedEncryptedDataElementsTest.java | 2 +-
.../apache/wss4j/dom/message/SKISignatureTest.java | 2 +-
.../apache/wss4j/dom/message/STRSignatureTest.java | 2 +-
.../dom/message/SecurityContextTokenTest.java | 2 +-
.../apache/wss4j/dom/message/SignatureAKITest.java | 2 +-
.../dom/message/SignatureAlgorithmSuiteTest.java | 2 +-
.../apache/wss4j/dom/message/SignatureCRLTest.java | 2 +-
.../dom/message/SignatureCertConstraintsTest.java | 2 +-
.../wss4j/dom/message/SignatureCertTest.java | 2 +-
.../wss4j/dom/message/SignatureEncryptionTest.java | 2 +-
.../SignatureIssuerCertConstraintsTest.java | 2 +-
.../wss4j/dom/message/SignatureKeyValueTest.java | 2 +-
.../wss4j/dom/message/SignaturePartsTest.java | 2 +-
.../wss4j/dom/message/SignatureProviderTest.java | 2 +-
.../apache/wss4j/dom/message/SignatureTest.java | 2 +-
.../wss4j/dom/message/SignatureWSS651Test.java | 2 +-
.../apache/wss4j/dom/message/SignedBSTTest.java | 2 +-
.../wss4j/dom/message/SymmetricSignatureTest.java | 2 +-
.../apache/wss4j/dom/message/TimestampTest.java | 2 +-
.../apache/wss4j/dom/message/UTDerivedKeyTest.java | 2 +-
.../apache/wss4j/dom/message/UTSignatureTest.java | 2 +-
.../wss4j/dom/message/UsernameTokenTest.java | 6 +-
.../wss4j/dom/message/XOPAttachmentTest.java | 2 +-
.../wss4j/dom/message/token/BSTKerberosTest.java | 2 +-
.../dom/message/token/BinarySecurityTokenTest.java | 2 +-
.../message/token/SecurityTokenReferenceTest.java | 2 +-
.../dom/message/token/WCFUsernameTokenTest.java | 2 +-
.../org/apache/wss4j/dom/misc/FaultCodeTest.java | 2 +-
.../org/apache/wss4j/dom/misc/PrincipalTest.java | 2 +-
.../apache/wss4j/dom/misc/SecurityHeaderTest.java | 3 +-
.../dom/processor/EncryptedKeyDataRefTest.java | 2 +-
.../dom/processor/ReferenceListDataRefTest.java | 2 +-
.../wss4j/dom/saml/SamlAlgorithmSuiteTest.java | 2 +-
.../org/apache/wss4j/dom/saml/SamlAuthnTest.java | 2 +-
.../apache/wss4j/dom/saml/SamlConditionsTest.java | 2 +-
.../apache/wss4j/dom/saml/SamlNegativeTest.java | 2 +-
.../apache/wss4j/dom/saml/SamlReferenceTest.java | 2 +-
.../apache/wss4j/dom/saml/SamlTokenActionTest.java | 2 +-
.../dom/saml/SamlTokenCustomSignatureTest.java | 2 +-
.../wss4j/dom/saml/SamlTokenDerivedTest.java | 2 +-
.../apache/wss4j/dom/saml/SamlTokenHOKTest.java | 2 +-
.../org/apache/wss4j/dom/saml/SamlTokenSVTest.java | 2 +-
.../org/apache/wss4j/dom/saml/SamlTokenTest.java | 2 +-
.../wss4j/dom/saml/SignedSamlTokenHOKTest.java | 2 +-
.../apache/wss4j/dom/validate/ValidatorTest.java | 2 +-
ws-security-policy-stax/pom.xml | 7 ++
.../apache/wss4j/stax/test/AbstractTestBase.java | 2 +-
.../org/apache/wss4j/stax/test/AttachmentTest.java | 2 +-
.../wss4j/stax/test/DerivedKeyTokenTest.java | 2 +-
.../wss4j/stax/test/SecurityContextTokenTest.java | 2 +-
.../apache/wss4j/stax/test/XOPAttachmentTest.java | 2 +-
.../wss4j/stax/test/saml/SAMLTokenHOKTest.java | 2 +-
.../stax/test/saml/SAMLTokenReferenceTest.java | 2 +-
.../apache/wss4j/stax/test/saml/SAMLTokenTest.java | 2 +-
.../wss4j/stax/test/saml/SamlTokenDerivedTest.java | 2 +-
99 files changed, 507 insertions(+), 211 deletions(-)
diff --git a/.gitignore b/.gitignore
index 3a1cddb..831a34c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,9 +4,13 @@
.project
.ruleset
.settings/
+.idea
+*.iml
target/
velocity.log
.pmdruleset.xml
+*.bat
+*.log
# IntelliJ
/.idea/
diff --git a/integration/pom.xml b/integration/pom.xml
index bfa8116..fd086f4 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.kerberos.KerberosContextAndServiceNameCallback;
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.securityEvent.KerberosTokenSecurityEvent;
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 @@ package org.apache.wss4j.common.token;
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 @@ public final class DOMX509IssuerSerial {
* 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 @@ public class SOAPUtil {
+ "</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 @@ public class SOAPUtil {
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 @@ public final class WSConstants extends WSS4JConstants {
/**
* 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 @@ public final class WSConstants extends WSS4JConstants {
* 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 @@ public final class WSConstants extends WSS4JConstants {
* 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 final class WSConstants extends WSS4JConstants {
*/
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 cddc996..421b671 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 @@ public abstract class WSHandler {
}
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 @@ public abstract class WSHandler {
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 @@ public final class WSHandlerConstants extends ConfigurationConstants {
* </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 @@ public final class WSHandlerConstants extends ConfigurationConstants {
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 @@ public final class WSHandlerConstants extends ConfigurationConstants {
* 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 @@ public class WSSecBase {
*
* @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 @@ public class WSSecBase {
*
* @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 d8ebd0f..f667e4e 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 @@ public abstract class WSSecDerivedKeyBase extends WSSecSignatureBase {
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 1d4c2b6..d300f67 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
@@ -356,7 +356,8 @@ public class WSSecEncrypt extends WSSecEncryptedKey {
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 ce0b835..13f6f01 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 @@ public class WSSecEncryptedKey extends WSSecBase {
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 @@ public class WSSecEncryptedKey extends WSSecBase {
}
+ 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 @@ public class WSSecSignature extends WSSecSignatureBase {
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 @@ public class WSSecSignature extends WSSecSignatureBase {
}
}
+ 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 @@ public class WSSecSignatureSAML extends WSSecSignature {
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 @@ public class WSSecSignatureSAML extends WSSecSignature {
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.io.InputStream;
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 @@ package org.apache.wss4j.dom.handler;
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.security.auth.callback.UnsupportedCallbackException;
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.Crypto;
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.Crypto;
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 c8b708b..6d6dc89 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.Callback;
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.Collections;
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 @@ package org.apache.wss4j.dom.handler;
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 92dae30..9eab6c6 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.AttachmentResultCallback;
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.KeyGenerator;
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.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.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.KeyGenerator;
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.Crypto;
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 91d1cea..5f7e52c 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 java.util.Collections;
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 ceb5e2b..40c210f 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.crypto.SecretKey;
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 9e9ecb4..4c23720 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.crypto.CryptoType;
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 b4e04ce..44e08c8 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.SamlAssertionWrapper;
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 0ea6c6e..c494306 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.JasyptPasswordEncryptor;
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 @@ package org.apache.wss4j.dom.message;
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 8d50ea2..3720376 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 java.util.List;
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.KeyGenerator;
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 db3b205..e4a8e64 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 c99fd06..9bc6e06 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 @@ package org.apache.wss4j.dom.message;
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 39718a8..02ad6bf 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.CryptoFactory;
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.Crypto;
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 @@ package org.apache.wss4j.dom.message;
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 @@ package org.apache.wss4j.dom.message;
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 java.util.regex.Pattern;
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 @@ package org.apache.wss4j.dom.message;
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.crypto.CryptoFactory;
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 @@ package org.apache.wss4j.dom.message;
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 static org.junit.jupiter.api.Assertions.assertTrue;
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 070d6f2..865338c 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.crypto.CryptoType;
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 19b3881..f620953 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 java.util.List;
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.Crypto;
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 025110a..8481949 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.CallbackHandler;
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.BSPEnforcer;
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 782e2a1..7ab706c 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.Crypto;
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 7253f98..123e6cb 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 59300fb..082e450 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.BSPEnforcer;
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 597a8e0..aa04ce5 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.Crypto;
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.ext.WSSecurityException;
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 javax.security.auth.callback.CallbackHandler;
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 4b1d050..e0d4ad2 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.WSPasswordCallback;
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.SAMLUtil;
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 9fbaf16..1bc7122 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.KeyGenerator;
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 a83a05a..ea7a40f 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.KeyGenerator;
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 @@ package org.apache.wss4j.dom.saml;
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.crypto.CryptoFactory;
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 2655892..cffa3af 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.ext.WSSecurityException;
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 84c01d6..6a23fd2 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.DelegateBean;
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 fe86a63..30ad0a1 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 @@ package org.apache.wss4j.dom.saml;
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 dead6ed..9ff70b3 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 java.util.List;
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.CustomSamlAssertionValidator;
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.SAMLUtil;
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.SAMLUtil;
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 5511293..71bd886 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.SAML1Constants;
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.KeystoreCallbackHandler;
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 3488651..687fd18 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.SAMLUtil;
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 2ce6c4a..acf8023 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.bsp.BSPRule;
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.ConfigurationConverter;
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.AttachmentResultCallback;
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.crypto.CryptoType;
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.securityToken.WSSecurityTokenConstants;
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 243a766..23056e0 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.Crypto;
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.securityEvent.WSSecurityEventConstants;
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.Crypto;
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.KeyInfoBean;
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.OutboundWSSec;
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.bean.Version;
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.OutboundWSSec;
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.bean.Version;
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.InboundWSSec;
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.SAMLUtil;
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.InboundWSSec;
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;