This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch coheigea/saml-refactor-new
in repository https://gitbox.apache.org/repos/asf/ws-wss4j.git


The following commit(s) were added to refs/heads/coheigea/saml-refactor-new by 
this push:
     new a4fbcc479 Moving some XML manipulation logic into ws-security-common
a4fbcc479 is described below

commit a4fbcc479b58584ec409bdb672b656730c73e364
Author: Colm O hEigeartaigh <cohei...@apache.org>
AuthorDate: Tue Jun 17 04:01:30 2025 +0100

    Moving some XML manipulation logic into ws-security-common
---
 .../org/apache/wss4j/common}/SOAP11Constants.java  |  12 +-
 .../org/apache/wss4j/common}/SOAP12Constants.java  |  12 +-
 .../org/apache/wss4j/common}/SOAPConstants.java    |   2 +-
 .../org/apache/wss4j/common/util/XMLUtils.java     | 325 ++++++++++++++++++++
 .../wss4j/dom/action/EncryptionDerivedAction.java  |   3 +-
 .../wss4j/dom/action/SignatureDerivedAction.java   |   3 +-
 .../org/apache/wss4j/dom/handler/RequestData.java  |   2 +-
 .../org/apache/wss4j/dom/handler/WSHandler.java    |   5 +-
 .../org/apache/wss4j/dom/message/Encryptor.java    |   6 +-
 .../apache/wss4j/dom/message/WSSecDKEncrypt.java   |   3 +-
 .../wss4j/dom/message/WSSecDerivedKeyBase.java     |   3 +-
 .../org/apache/wss4j/dom/message/WSSecEncrypt.java |   4 +-
 .../wss4j/dom/message/WSSecEncryptedKey.java       |   4 +-
 .../org/apache/wss4j/dom/message/WSSecHeader.java  |   9 +-
 .../apache/wss4j/dom/message/WSSecSAMLToken.java   |   4 +-
 .../dom/message/WSSecSecurityContextToken.java     |   4 +-
 .../apache/wss4j/dom/message/WSSecSignature.java   |   2 +-
 .../wss4j/dom/message/WSSecSignatureBase.java      |   2 +-
 .../dom/message/WSSecSignatureConfirmation.java    |   4 +-
 .../apache/wss4j/dom/message/WSSecTimestamp.java   |   4 +-
 .../wss4j/dom/message/WSSecUsernameToken.java      |   4 +-
 .../wss4j/dom/message/token/DerivedKeyToken.java   |   6 +-
 .../apache/wss4j/dom/saml/WSSecSignatureSAML.java  |   7 +-
 .../org/apache/wss4j/dom/util/WSSecurityUtil.java  | 333 +--------------------
 .../dom/message/EncryptedDataInHeaderTest.java     |   3 +-
 .../wss4j/dom/message/EncryptionPartsTest.java     |  14 +-
 .../apache/wss4j/dom/message/EncryptionTest.java   |  11 +-
 .../apache/wss4j/dom/message/STRSignatureTest.java |  11 +-
 .../wss4j/dom/message/SignaturePartsTest.java      |  14 +-
 .../apache/wss4j/dom/message/SignedBSTTest.java    |   5 +-
 .../apache/wss4j/dom/message/UTDerivedKeyTest.java |   9 +-
 .../wss4j/dom/message/XOPAttachmentTest.java       |   2 +-
 .../wss4j/dom/message/token/BSTKerberosTest.java   |  19 +-
 .../dom/message/token/BinarySecurityTokenTest.java |   9 +-
 .../org/apache/wss4j/dom/misc/PrincipalTest.java   |   3 +-
 .../wss4j/dom/saml/SamlTokenDerivedTest.java       |   3 +-
 .../apache/wss4j/dom/validate/ValidatorTest.java   |   3 +-
 37 files changed, 429 insertions(+), 440 deletions(-)

diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP11Constants.java 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java
similarity index 76%
rename from 
ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP11Constants.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java
index 31b94a107..86d2a4b4b 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP11Constants.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.wss4j.dom;
+package org.apache.wss4j.common;
 
 import javax.xml.namespace.QName;
 
@@ -29,12 +29,12 @@ public class SOAP11Constants implements SOAPConstants {
      *
      */
     private static final long serialVersionUID = 3809268485386395322L;
-    private static final QName HEADER_QNAME = new 
QName(WSConstants.URI_SOAP11_ENV, WSConstants.ELEM_HEADER);
-    private static final QName BODY_QNAME = new 
QName(WSConstants.URI_SOAP11_ENV, WSConstants.ELEM_BODY);
-    private static final QName ROLE_QNAME = new 
QName(WSConstants.URI_SOAP11_ENV, WSConstants.ATTR_ACTOR);
+    private static final QName HEADER_QNAME = new 
QName(WSS4JConstants.URI_SOAP11_ENV, WSS4JConstants.ELEM_HEADER);
+    private static final QName BODY_QNAME = new 
QName(WSS4JConstants.URI_SOAP11_ENV, WSS4JConstants.ELEM_BODY);
+    private static final QName ROLE_QNAME = new 
QName(WSS4JConstants.URI_SOAP11_ENV, WSS4JConstants.ATTR_ACTOR);
 
     public String getEnvelopeURI() {
-        return WSConstants.URI_SOAP11_ENV;
+        return WSS4JConstants.URI_SOAP11_ENV;
     }
 
     public QName getHeaderQName() {
@@ -56,7 +56,7 @@ public class SOAP11Constants implements SOAPConstants {
      * Obtain the "next" role/actor URI
      */
     public String getNextRoleURI() {
-        return WSConstants.URI_SOAP11_NEXT_ACTOR;
+        return WSS4JConstants.URI_SOAP11_NEXT_ACTOR;
     }
 
     /**
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP12Constants.java 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java
similarity index 78%
rename from 
ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP12Constants.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java
index eb6e58115..938760b78 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAP12Constants.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.wss4j.dom;
+package org.apache.wss4j.common;
 
 import javax.xml.namespace.QName;
 
@@ -29,9 +29,9 @@ public class SOAP12Constants implements SOAPConstants {
      *
      */
     private static final long serialVersionUID = 3784866613259361834L;
-    private static final QName HEADER_QNAME = new 
QName(WSConstants.URI_SOAP12_ENV, WSConstants.ELEM_HEADER);
-    private static final QName BODY_QNAME = new 
QName(WSConstants.URI_SOAP12_ENV, WSConstants.ELEM_BODY);
-    private static final QName ROLE_QNAME = new 
QName(WSConstants.URI_SOAP12_ENV, WSConstants.ATTR_ROLE);
+    private static final QName HEADER_QNAME = new 
QName(WSS4JConstants.URI_SOAP12_ENV, WSS4JConstants.ELEM_HEADER);
+    private static final QName BODY_QNAME = new 
QName(WSS4JConstants.URI_SOAP12_ENV, WSS4JConstants.ELEM_BODY);
+    private static final QName ROLE_QNAME = new 
QName(WSS4JConstants.URI_SOAP12_ENV, WSS4JConstants.ATTR_ROLE);
 
     // Public constants for SOAP 1.2
 
@@ -41,7 +41,7 @@ public class SOAP12Constants implements SOAPConstants {
     public static final String PROP_WEBMETHOD = "soap12.webmethod";
 
     public String getEnvelopeURI() {
-        return WSConstants.URI_SOAP12_ENV;
+        return WSS4JConstants.URI_SOAP12_ENV;
     }
 
     public QName getHeaderQName() {
@@ -63,7 +63,7 @@ public class SOAP12Constants implements SOAPConstants {
      * Obtain the "next" role/actor URI
      */
     public String getNextRoleURI() {
-        return WSConstants.URI_SOAP12_NEXT_ROLE;
+        return WSS4JConstants.URI_SOAP12_NEXT_ROLE;
     }
 
     /**
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAPConstants.java 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java
similarity index 98%
rename from 
ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAPConstants.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java
index e895de484..aac35dca3 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/SOAPConstants.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.wss4j.dom;
+package org.apache.wss4j.common;
 
 import javax.xml.namespace.QName;
 import java.io.Serializable;
diff --git 
a/ws-security-common/src/main/java/org/apache/wss4j/common/util/XMLUtils.java 
b/ws-security-common/src/main/java/org/apache/wss4j/common/util/XMLUtils.java
index 136b18410..d09fcb35b 100644
--- 
a/ws-security-common/src/main/java/org/apache/wss4j/common/util/XMLUtils.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/util/XMLUtils.java
@@ -22,7 +22,14 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.nio.charset.StandardCharsets;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -37,6 +44,11 @@ import javax.xml.transform.sax.SAXSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.wss4j.common.SOAP11Constants;
+import org.apache.wss4j.common.SOAP12Constants;
+import org.apache.wss4j.common.SOAPConstants;
+import org.apache.wss4j.common.WSS4JConstants;
+import org.apache.wss4j.common.ext.WSSecurityException;
 import org.w3c.dom.Attr;
 import org.w3c.dom.CDATASection;
 import org.w3c.dom.Document;
@@ -56,10 +68,94 @@ public final class XMLUtils {
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(XMLUtils.class);
 
+    private static boolean isSAAJ14 = false;
+
     private XMLUtils() {
         // complete
     }
 
+    private static final ClassValue<Method> GET_DOM_ELEMENTS_METHODS = new 
ClassValue<Method>() {
+        @Override
+        protected Method computeValue(Class<?> type) {
+            try {
+                return getMethod(type, "getDomElement");
+            } catch (NoSuchMethodException e) {
+                //best effort to try, do nothing if NoSuchMethodException
+                return null;
+            }
+        }
+    };
+
+    private static final ClassValue<Method> GET_ENVELOPE_METHODS = new 
ClassValue<Method>() {
+        @Override
+        protected Method computeValue(Class<?> type) {
+            try {
+                return getMethod(type, "getEnvelope");
+            } catch (NoSuchMethodException e) {
+                //best effort to try, do nothing if NoSuchMethodException
+                return null;
+            }
+        }
+    };
+
+    static {
+        try {
+            Method[] methods = XMLUtils.class.getClassLoader().
+                
loadClass("com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl").getMethods();
+            for (Method method : methods) {
+                if (method.getName().equals("register")) {
+                    //this is the 1.4+ SAAJ impl
+                    isSAAJ14 = true;
+                    break;
+                }
+            }
+        } catch (ClassNotFoundException cnfe) {
+            LOG.debug("Can't load class 
com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl", cnfe);
+
+            try {
+                Method[] methods = XMLUtils.class.getClassLoader().
+                    
loadClass("com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl").getMethods();
+                for (Method method : methods) {
+                    if (method.getName().equals("register")) {
+                        //this is the SAAJ impl in JDK9
+                        isSAAJ14 = true;
+                        break;
+                    }
+                }
+            } catch (ClassNotFoundException cnfe1) {
+                LOG.debug("can't load class 
com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl", cnfe1);
+            }
+        }
+    }
+
+    private static Method getMethod(final Class<?> clazz, final String name,
+                                   final Class<?>... parameterTypes) throws 
NoSuchMethodException {
+        try {
+            return AccessController.doPrivileged(new 
PrivilegedExceptionAction<Method>() {
+                public Method run() throws Exception {
+                    return clazz.getMethod(name, parameterTypes);
+                }
+            });
+        } catch (PrivilegedActionException pae) {
+            Exception e = pae.getException();
+            if (e instanceof NoSuchMethodException) {
+                throw (NoSuchMethodException)e;
+            }
+            throw new SecurityException(e);
+        }
+    }
+
+    private static <T extends AccessibleObject> T setAccessible(final T o) {
+        return AccessController.doPrivileged(new PrivilegedAction<T>() {
+            public T run() {
+                o.setAccessible(true);
+                return o;
+            }
+        });
+    }
+
+
+
     /**
      * Gets a direct child with specified localname and namespace. <p/>
      *
@@ -505,4 +601,233 @@ public final class XMLUtils {
         return foundElement;
     }
 
+    /**
+     * find the first ws-security header block <p/>
+     *
+     * @param doc the DOM document (SOAP request)
+     * @param envelope the SOAP envelope
+     * @param doCreate if true create a new WSS header block if none exists
+     * @return the WSS header or null if none found and doCreate is false
+     */
+    public static Element findWsseSecurityHeaderBlock(
+        Document doc,
+        Element envelope,
+        boolean doCreate
+    ) throws WSSecurityException {
+        return findWsseSecurityHeaderBlock(doc, envelope, null, doCreate);
+    }
+
+    /**
+     * find a WS-Security header block for a given actor <p/>
+     *
+     * @param doc the DOM document (SOAP request)
+     * @param envelope the SOAP envelope
+     * @param actor the actor (role) name of the WSS header
+     * @param doCreate if true create a new WSS header block if none exists
+     * @return the WSS header or null if none found and doCreate is false
+     */
+    public static Element findWsseSecurityHeaderBlock(
+        Document doc,
+        Element envelope,
+        String actor,
+        boolean doCreate
+    ) throws WSSecurityException {
+        String soapNamespace = getSOAPNamespace(doc.getDocumentElement());
+        Element header =
+            XMLUtils.getDirectChildElement(
+                doc.getDocumentElement(),
+                WSS4JConstants.ELEM_HEADER,
+                soapNamespace
+            );
+        if (header == null) { // no SOAP header at all
+            if (doCreate) {
+                if (isSAAJ14) {
+                    try {
+                        Node node = null;
+                        Method method = 
GET_ENVELOPE_METHODS.get(doc.getClass());
+                        if (method != null) {
+                            try {
+                                node = (Node)setAccessible(method).invoke(doc);
+                            } catch (IllegalAccessException | 
IllegalArgumentException | InvocationTargetException e) {
+                                throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
+                            }
+                        }
+                        if (node != null) {
+                            header = createElementInSameNamespace(node, 
WSS4JConstants.ELEM_HEADER);
+                        } else {
+                            header = 
createElementInSameNamespace(doc.getDocumentElement(), 
WSS4JConstants.ELEM_HEADER);
+                        }
+                        header = (Element)doc.importNode(header, true);
+                        header = (Element)getDomElement(header);
+                        header = prependChildElement(envelope, header);
+
+                    } catch (Exception e) {
+                        throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
+                    }
+
+                } else {
+                    header = createElementInSameNamespace(envelope, 
WSS4JConstants.ELEM_HEADER);
+                    header = prependChildElement(envelope, header);
+                }
+            } else {
+                return null;
+            }
+        }
+
+        String actorLocal = WSS4JConstants.ATTR_ACTOR;
+        if (WSS4JConstants.URI_SOAP12_ENV.equals(soapNamespace)) {
+            actorLocal = WSS4JConstants.ATTR_ROLE;
+        }
+
+        //
+        // Iterate through the security headers
+        //
+        Element foundSecurityHeader = null;
+        for (
+            Node currentChild = header.getFirstChild();
+            currentChild != null;
+            currentChild = currentChild.getNextSibling()
+        ) {
+            if (Node.ELEMENT_NODE == currentChild.getNodeType()
+                && WSS4JConstants.WSSE_LN.equals(currentChild.getLocalName())
+                && 
WSS4JConstants.WSSE_NS.equals(currentChild.getNamespaceURI())) {
+
+                Element elem = (Element)currentChild;
+                Attr attr = elem.getAttributeNodeNS(soapNamespace, actorLocal);
+                String hActor = (attr != null) ? attr.getValue() : null;
+
+                if (isActorEqual(actor, hActor)) {
+                    if (foundSecurityHeader != null) {
+                        LOG.debug(
+                            "Two or more security headers have the same actor 
name: {}", actor
+                        );
+                        throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
+                    }
+                    foundSecurityHeader = elem;
+                }
+            }
+        }
+        if (foundSecurityHeader != null) {
+            return foundSecurityHeader;
+        } else if (doCreate) {
+            foundSecurityHeader = doc.createElementNS(WSS4JConstants.WSSE_NS, 
"wsse:Security");
+            foundSecurityHeader.setAttributeNS(WSS4JConstants.XMLNS_NS, 
"xmlns:wsse", WSS4JConstants.WSSE_NS);
+            foundSecurityHeader = (Element)doc.importNode(foundSecurityHeader, 
true);
+            foundSecurityHeader = (Element)getDomElement(foundSecurityHeader);
+
+            return prependChildElement(header, foundSecurityHeader);
+        }
+        return null;
+    }
+
+    /**
+     * create a new element in the same namespace <p/>
+     *
+     * @param parent for the new element
+     * @param localName of the new element
+     * @return the new element
+     */
+    private static Element createElementInSameNamespace(Node parent, String 
localName) {
+        String qName = localName;
+        String prefix = parent.getPrefix();
+        if (prefix != null && prefix.length() > 0) {
+            qName = prefix + ":" + localName;
+        }
+
+        String nsUri = parent.getNamespaceURI();
+        return parent.getOwnerDocument().createElementNS(nsUri, qName);
+    }
+
+    /**
+     * prepend a child element <p/>
+     *
+     * @param parent element of this child element
+     * @param child the element to append
+     * @return the child element
+     */
+    public static Element prependChildElement(
+        Element parent,
+        Element child
+    ) {
+        Node firstChild = parent.getFirstChild();
+        Element domChild = null;
+        try {
+            domChild = (Element)getDomElement(child);
+        } catch (WSSecurityException e) {
+            LOG.debug("Error when try to get Dom Element from the child", e);
+        }
+        if (firstChild == null) {
+            return (Element)parent.appendChild(domChild);
+        } else {
+            return (Element)parent.insertBefore(domChild, firstChild);
+        }
+    }
+
+    /**
+     * Try to get the DOM Node from the SAAJ Node with JAVA9
+     * @param node The original node we need check
+     * @return The DOM node
+     * @throws WSSecurityException
+     */
+    private static Node getDomElement(Node node) throws WSSecurityException {
+        if (node != null && isSAAJ14) {
+
+            Method method = GET_DOM_ELEMENTS_METHODS.get(node.getClass());
+            if (method != null) {
+                try {
+                    return (Node)setAccessible(method).invoke(node);
+                } catch (IllegalAccessException | IllegalArgumentException | 
InvocationTargetException e) {
+                    throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
+                }
+            }
+        }
+        return node;
+    }
+
+    /**
+     * Compares two actor strings and returns true if these are equal. Takes
+     * care of the null length strings and uses ignore case.
+     *
+     * @param actor
+     * @param hActor
+     * @return true is the actor arguments are equal
+     */
+    public static boolean isActorEqual(String actor, String hActor) {
+        if ((hActor == null || hActor.length() == 0)
+            && (actor == null || actor.length() == 0)) {
+            return true;
+        }
+
+        return hActor != null && actor != null && 
hActor.equalsIgnoreCase(actor);
+    }
+
+    public static SOAPConstants getSOAPConstants(Element startElement) {
+        Document doc = startElement.getOwnerDocument();
+        String ns = doc.getDocumentElement().getNamespaceURI();
+        if (WSS4JConstants.URI_SOAP12_ENV.equals(ns)) {
+            return new SOAP12Constants();
+        }
+        return new SOAP11Constants();
+    }
+
+    public static String getSOAPNamespace(Element startElement) {
+        return getSOAPConstants(startElement).getEnvelopeURI();
+    }
+
+    /**
+     * Register the jakarta.xml.soap.Node with new Cloned Dom Node with java9
+     * @param doc The SOAPDocumentImpl
+     * @param clonedElement The cloned Element
+     * @return new clonedElement which already associated with the SAAJ Node
+     * @throws WSSecurityException
+     */
+    public static Element cloneElement(Document doc, Element clonedElement) 
throws WSSecurityException {
+        clonedElement = (Element)clonedElement.cloneNode(true);
+        if (isSAAJ14) {
+            // here we need register the jakarta.xml.soap.Node with new 
instance
+            clonedElement = (Element)doc.importNode(clonedElement, true);
+            clonedElement = (Element)getDomElement(clonedElement);
+        }
+        return clonedElement;
+    }
 }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
index 05345d6fd..4734bd20a 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
@@ -33,6 +33,7 @@ import 
org.apache.wss4j.common.derivedKey.ConversationConstants;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandler;
@@ -141,7 +142,7 @@ public class EncryptionDerivedAction extends 
AbstractDerivedAction implements Ac
             wsEncrypt.addExternalRefElement(externRefList);
 
             if (tokenElement != null) {
-                
WSSecurityUtil.prependChildElement(reqData.getSecHeader().getSecurityHeaderElement(),
 tokenElement);
+                
XMLUtils.prependChildElement(reqData.getSecHeader().getSecurityHeaderElement(), 
tokenElement);
             }
 
             wsEncrypt.clean();
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
index 97d0324aa..aadab9267 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
@@ -34,6 +34,7 @@ import 
org.apache.wss4j.common.derivedKey.ConversationConstants;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandler;
@@ -156,7 +157,7 @@ public class SignatureDerivedAction extends 
AbstractDerivedAction implements Act
             }
 
             if (tokenElement != null) {
-                
WSSecurityUtil.prependChildElement(reqData.getSecHeader().getSecurityHeaderElement(),
 tokenElement);
+                
XMLUtils.prependChildElement(reqData.getSecHeader().getSecurityHeaderElement(), 
tokenElement);
             }
 
             reqData.getSignatureValues().add(wsSign.getSignatureValue());
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/RequestData.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/RequestData.java
index c878fa048..6339ae10c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/RequestData.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/RequestData.java
@@ -34,6 +34,7 @@ import javax.xml.namespace.QName;
 import org.apache.wss4j.common.ConfigurationConstants;
 import org.apache.wss4j.common.EncryptionActionToken;
 import org.apache.wss4j.common.SignatureActionToken;
+import org.apache.wss4j.common.SOAPConstants;
 import org.apache.wss4j.common.WSS4JConstants;
 import org.apache.wss4j.common.bsp.BSPEnforcer;
 import org.apache.wss4j.common.bsp.BSPRule;
@@ -42,7 +43,6 @@ import org.apache.wss4j.common.crypto.AlgorithmSuite;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.PasswordEncryptor;
 import org.apache.wss4j.common.ext.WSSecurityException;
-import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSDocInfo;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.message.WSSecHeader;
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 242803038..ddbce894b 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
@@ -44,6 +44,7 @@ import org.apache.wss4j.common.crypto.PasswordEncryptor;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.Loader;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.token.SignatureConfirmation;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
@@ -109,7 +110,7 @@ public abstract class WSHandler {
         WSSecHeader secHeader = new WSSecHeader(actor, mu, doc);
         secHeader.insertSecurityHeader();
         reqData.setSecHeader(secHeader);
-        
reqData.setSoapConstants(WSSecurityUtil.getSOAPConstants(doc.getDocumentElement()));
+        
reqData.setSoapConstants(XMLUtils.getSOAPConstants(doc.getDocumentElement()));
 
         // Load CallbackHandler
         if (reqData.getCallbackHandler() == null) {
@@ -1317,7 +1318,7 @@ public abstract class WSHandler {
          */
         for (WSHandlerResult rResult : results) {
             String hActor = rResult.getActor();
-            if (!WSSecurityUtil.isActorEqual(reqData.getActor(), hActor)) {
+            if (!XMLUtils.isActorEqual(reqData.getActor(), hActor)) {
                 continue;
             }
             List<WSSecurityEngineResult> wsSecEngineResults = 
rResult.getResults();
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/Encryptor.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/Encryptor.java
index 3f16391d9..77f407f93 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/Encryptor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/Encryptor.java
@@ -264,7 +264,7 @@ public class Encryptor {
         encryptionMethod.setAttributeNS(null, "Algorithm", 
encryptionAlgorithm);
 
         encryptedData.appendChild(encryptionMethod);
-        encryptedData.appendChild(WSSecurityUtil.cloneElement(doc, 
keyInfo.getElement()));
+        encryptedData.appendChild(XMLUtils.cloneElement(doc, 
keyInfo.getElement()));
 
         Element cipherData =
             doc.createElementNS(WSConstants.ENC_NS, WSConstants.ENC_PREFIX + 
":CipherData");
@@ -371,7 +371,7 @@ public class Encryptor {
             encryptionMethod.setAttributeNS(null, "Algorithm", 
encryptionAlgorithm);
 
             encryptedData.appendChild(encryptionMethod);
-            encryptedData.appendChild(WSSecurityUtil.cloneElement(doc, 
keyInfo.getElement()));
+            encryptedData.appendChild(XMLUtils.cloneElement(doc, 
keyInfo.getElement()));
 
             Element cipherData =
                 doc.createElementNS(WSConstants.ENC_NS, WSConstants.ENC_PREFIX 
+ ":CipherData");
@@ -452,7 +452,7 @@ public class Encryptor {
         String xencEncryptedDataId = idAllocator.createId("ED-", 
elementToEncrypt);
         try {
             if ("Header".equals(modifier)) {
-                String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+                String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
                 if 
(elementToEncrypt.getParentNode().getNamespaceURI().equals(soapNamespace)
                     && 
WSConstants.ELEM_HEADER.equals(elementToEncrypt.getParentNode().getLocalName()))
 {
                     createEncryptedHeaderElement(securityHeader, 
elementToEncrypt, idAllocator);
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
index 81683dd96..fa6d5fcb8 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecDKEncrypt.java
@@ -31,6 +31,7 @@ import org.apache.wss4j.common.token.Reference;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.util.FIPSUtils;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.xml.security.encryption.Serializer;
@@ -92,7 +93,7 @@ public class WSSecDKEncrypt extends WSSecDerivedKeyBase {
         if (attachmentEncryptedDataElements != null) {
             for (Element encryptedData : attachmentEncryptedDataElements) {
                 Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-                WSSecurityUtil.prependChildElement(securityHeaderElement, 
encryptedData);
+                XMLUtils.prependChildElement(securityHeaderElement, 
encryptedData);
             }
         }
     }
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 c59a3e53f..6377d4146 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
@@ -38,7 +38,6 @@ import org.apache.wss4j.common.util.UsernameTokenUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.message.token.DerivedKeyToken;
 import org.apache.wss4j.dom.message.token.KerberosSecurity;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.xml.security.utils.XMLUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -306,7 +305,7 @@ public abstract class WSSecDerivedKeyBase extends 
WSSecSignatureBase {
      */
     public void prependDKElementToHeader() {
         Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(securityHeaderElement, 
dkt.getElement());
+        
org.apache.wss4j.common.util.XMLUtils.prependChildElement(securityHeaderElement,
 dkt.getElement());
     }
 
     public void appendDKElementToHeader() {
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 3698b4d34..de381d8a9 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
@@ -274,7 +274,7 @@ public class WSSecEncrypt extends WSSecEncryptedKey {
     public void addExternalRefElement(Element dataRef) {
         if (dataRef != null) {
             Element secHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-            WSSecurityUtil.prependChildElement(secHeaderElement, dataRef);
+            XMLUtils.prependChildElement(secHeaderElement, dataRef);
         }
     }
 
@@ -282,7 +282,7 @@ public class WSSecEncrypt extends WSSecEncryptedKey {
         if (attachmentEncryptedDataElements != null) {
             for (Element encryptedData : attachmentEncryptedDataElements) {
                 Element secHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-                WSSecurityUtil.prependChildElement(secHeaderElement, 
encryptedData);
+                XMLUtils.prependChildElement(secHeaderElement, encryptedData);
             }
         }
     }
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 77e8c80d1..05a81dd7e 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
@@ -784,7 +784,7 @@ public class WSSecEncryptedKey extends WSSecBase {
      */
     public void prependToHeader() {
         Element secHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(secHeaderElement, 
encryptedKeyElement);
+        
org.apache.wss4j.common.util.XMLUtils.prependChildElement(secHeaderElement, 
encryptedKeyElement);
     }
 
     /**
@@ -810,7 +810,7 @@ public class WSSecEncryptedKey extends WSSecBase {
     public void prependBSTElementToHeader() {
         if (bstToken != null && !bstAddedToSecurityHeader) {
             Element secHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-            WSSecurityUtil.prependChildElement(secHeaderElement, 
bstToken.getElement());
+            
org.apache.wss4j.common.util.XMLUtils.prependChildElement(secHeaderElement, 
bstToken.getElement());
             bstAddedToSecurityHeader = true;
         }
     }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecHeader.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecHeader.java
index 65ecdb32f..7ec7ea9c0 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecHeader.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecHeader.java
@@ -21,7 +21,6 @@ package org.apache.wss4j.dom.message;
 import org.apache.wss4j.common.WSS4JConstants;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.XMLUtils;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -130,7 +129,7 @@ public class WSSecHeader {
         }
         if (securityHeader == null) {
             securityHeader =
-                WSSecurityUtil.findWsseSecurityHeaderBlock(
+                XMLUtils.findWsseSecurityHeaderBlock(
                     doc, doc.getDocumentElement(), actor, false
                 );
         }
@@ -161,11 +160,11 @@ public class WSSecHeader {
         }
 
         securityHeader =
-            WSSecurityUtil.findWsseSecurityHeaderBlock(
+            XMLUtils.findWsseSecurityHeaderBlock(
                 doc, doc.getDocumentElement(), actor, true
             );
 
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         String soapPrefix =
             XMLUtils.setNamespace(
                 securityHeader, soapNamespace, 
WSS4JConstants.DEFAULT_SOAP_PREFIX
@@ -206,7 +205,7 @@ public class WSSecHeader {
             }
 
             securityHeader =
-                WSSecurityUtil.findWsseSecurityHeaderBlock(
+                XMLUtils.findWsseSecurityHeaderBlock(
                     doc, doc.getDocumentElement(), actor, false
                 );
         }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
index 404552738..e37d67757 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSAMLToken.java
@@ -20,8 +20,8 @@
 package org.apache.wss4j.dom.message;
 
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.common.ext.WSSecurityException;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -74,7 +74,7 @@ public class WSSecSAMLToken extends WSSecBase {
             Element element = getElement();
             if (element != null) {
                 Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-                WSSecurityUtil.prependChildElement(securityHeaderElement, 
element);
+                XMLUtils.prependChildElement(securityHeaderElement, element);
             }
         } catch (WSSecurityException ex) {
             throw new RuntimeException(ex.toString(), ex);
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
index ecc4fdf8d..6bc86687e 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSecurityContextToken.java
@@ -21,10 +21,10 @@ package org.apache.wss4j.dom.message;
 
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.common.derivedKey.ConversationConstants;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.message.token.SecurityContextToken;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -93,7 +93,7 @@ public class WSSecSecurityContextToken {
     public void prependSCTElementToHeader()
         throws WSSecurityException {
         Element secHeaderElement = securityHeader.getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(secHeaderElement, sct.getElement());
+        XMLUtils.prependChildElement(secHeaderElement, sct.getElement());
     }
 
     /**
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 e7384610d..3024b0aa4 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
@@ -521,7 +521,7 @@ public class WSSecSignature extends WSSecSignatureBase {
     public void prependBSTElementToHeader() {
         if (bstToken != null && !bstAddedToSecurityHeader) {
             Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-            WSSecurityUtil.prependChildElement(securityHeaderElement, 
bstToken);
+            XMLUtils.prependChildElement(securityHeaderElement, bstToken);
             bstAddedToSecurityHeader = true;
         }
     }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
index 5901112a8..6c907165d 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureBase.java
@@ -242,7 +242,7 @@ public class WSSecSignatureBase extends WSSecBase {
 
                 clonedElements.add(element);
                 Document doc = this.getSecurityHeader().getSecurityHeaderDoc();
-                
element.getParentNode().appendChild(WSSecurityUtil.cloneElement(doc, element));
+                element.getParentNode().appendChild(XMLUtils.cloneElement(doc, 
element));
                 WSSecurityUtil.inlineAttachments(includeElements, 
attachmentCallbackHandler, false);
             }
         }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
index 3e04ee4ea..6882a9544 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecSignatureConfirmation.java
@@ -19,8 +19,8 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.message.token.SignatureConfirmation;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -78,7 +78,7 @@ public class WSSecSignatureConfirmation extends WSSecBase {
      */
     public void prependToHeader() {
         Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(securityHeaderElement, 
sc.getElement());
+        XMLUtils.prependChildElement(securityHeaderElement, sc.getElement());
     }
 
     /**
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecTimestamp.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecTimestamp.java
index 43eeabd5a..6d3f10e84 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecTimestamp.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecTimestamp.java
@@ -24,8 +24,8 @@ import org.w3c.dom.Element;
 
 import org.apache.wss4j.common.util.WSCurrentTimeSource;
 import org.apache.wss4j.common.util.WSTimeSource;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.message.token.Timestamp;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 /**
  * Builds a WS Timestamp and inserts it into the SOAP Envelope. Refer to the WS
@@ -88,7 +88,7 @@ public class WSSecTimestamp extends WSSecBase {
      */
     public void prependToHeader() {
         Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(securityHeaderElement, 
ts.getElement());
+        XMLUtils.prependChildElement(securityHeaderElement, ts.getElement());
     }
 
     /**
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecUsernameToken.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecUsernameToken.java
index f0d6562ef..9c70b9e1c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecUsernameToken.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecUsernameToken.java
@@ -25,8 +25,8 @@ import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.UsernameTokenUtil;
 import org.apache.wss4j.common.util.WSCurrentTimeSource;
 import org.apache.wss4j.common.util.WSTimeSource;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.message.token.UsernameToken;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -195,7 +195,7 @@ public class WSSecUsernameToken extends WSSecBase {
      */
     public void prependToHeader() {
         Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
-        WSSecurityUtil.prependChildElement(securityHeaderElement, 
ut.getElement());
+        XMLUtils.prependChildElement(securityHeaderElement, ut.getElement());
     }
 
     /**
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/token/DerivedKeyToken.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/token/DerivedKeyToken.java
index eea34fc21..37aa79b6a 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/token/DerivedKeyToken.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/token/DerivedKeyToken.java
@@ -36,7 +36,7 @@ import 
org.apache.wss4j.common.principal.WSDerivedKeyTokenPrincipal;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.common.util.XMLUtils;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
+
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -210,12 +210,12 @@ public class DerivedKeyToken {
      */
     public void setSecurityTokenReference(SecurityTokenReference ref) {
         elementSecurityTokenReference = ref.getElement();
-        WSSecurityUtil.prependChildElement(element, ref.getElement());
+        XMLUtils.prependChildElement(element, ref.getElement());
     }
 
     public void setSecurityTokenReference(Element elem) {
         elementSecurityTokenReference = elem;
-        WSSecurityUtil.prependChildElement(element, elem);
+        XMLUtils.prependChildElement(element, elem);
     }
 
     /**
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 b1e14bf89..deb87b079 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
@@ -46,6 +46,7 @@ import org.apache.wss4j.common.token.Reference;
 import org.apache.wss4j.common.token.SecurityTokenReference;
 import org.apache.wss4j.common.token.X509Security;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.WSDocInfo;
 import org.apache.wss4j.dom.handler.RequestData;
@@ -125,7 +126,7 @@ public class WSSecSignatureSAML extends WSSecSignature {
         //
         if (secRefID != null) {
             String soapNamespace =
-                
WSSecurityUtil.getSOAPNamespace(getDocument().getDocumentElement());
+                XMLUtils.getSOAPNamespace(getDocument().getDocumentElement());
             WSEncryptionPart encP =
                 new WSEncryptionPart("STRTransform", soapNamespace, "Content");
             encP.setId(secRefID);
@@ -466,10 +467,10 @@ public class WSSecSignatureSAML extends WSSecSignature {
     public void prependSAMLElementsToHeader() {
         Element securityHeaderElement = 
getSecurityHeader().getSecurityHeaderElement();
         if (senderVouches) {
-            WSSecurityUtil.prependChildElement(securityHeaderElement, 
secRefSaml.getElement());
+            XMLUtils.prependChildElement(securityHeaderElement, 
secRefSaml.getElement());
         }
 
-        WSSecurityUtil.prependChildElement(securityHeaderElement, samlToken);
+        XMLUtils.prependChildElement(securityHeaderElement, samlToken);
     }
 
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
index 1496a740e..8ef84c00a 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
@@ -19,9 +19,6 @@
 
 package org.apache.wss4j.dom.util;
 
-import org.apache.wss4j.dom.SOAP11Constants;
-import org.apache.wss4j.dom.SOAP12Constants;
-import org.apache.wss4j.dom.SOAPConstants;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.callback.CallbackLookup;
 import org.apache.wss4j.dom.engine.WSSConfig;
@@ -40,13 +37,6 @@ import org.w3c.dom.Text;
 
 //import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -59,97 +49,16 @@ import javax.security.auth.callback.CallbackHandler;
  */
 public final class WSSecurityUtil {
 
-    private static boolean isSAAJ14 = false;
-
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(WSSecurityUtil.class);
 
-    private static final ClassValue<Method> GET_DOM_ELEMENTS_METHODS = new 
ClassValue<Method>() {
-        @Override
-        protected Method computeValue(Class<?> type) {
-            try {
-                return getMethod(type, "getDomElement");
-            } catch (NoSuchMethodException e) {
-                //best effort to try, do nothing if NoSuchMethodException
-                return null;
-            }
-        }
-    };
-
-    private static final ClassValue<Method> GET_ENVELOPE_METHODS = new 
ClassValue<Method>() {
-        @Override
-        protected Method computeValue(Class<?> type) {
-            try {
-                return getMethod(type, "getEnvelope");
-            } catch (NoSuchMethodException e) {
-                //best effort to try, do nothing if NoSuchMethodException
-                return null;
-            }
-        }
-    };
-
-    static {
-        try {
-            Method[] methods = WSSecurityUtil.class.getClassLoader().
-                
loadClass("com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl").getMethods();
-            for (Method method : methods) {
-                if (method.getName().equals("register")) {
-                    //this is the 1.4+ SAAJ impl
-                    isSAAJ14 = true;
-                    break;
-                }
-            }
-        } catch (ClassNotFoundException cnfe) {
-            LOG.debug("Can't load class 
com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl", cnfe);
-
-            try {
-                Method[] methods = WSSecurityUtil.class.getClassLoader().
-                    
loadClass("com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl").getMethods();
-                for (Method method : methods) {
-                    if (method.getName().equals("register")) {
-                        //this is the SAAJ impl in JDK9
-                        isSAAJ14 = true;
-                        break;
-                    }
-                }
-            } catch (ClassNotFoundException cnfe1) {
-                LOG.debug("can't load class 
com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl", cnfe1);
-            }
-        }
-    }
 
     private WSSecurityUtil() {
         // Complete
     }
 
-    private static Method getMethod(final Class<?> clazz, final String name,
-                                   final Class<?>... parameterTypes) throws 
NoSuchMethodException {
-        try {
-            return AccessController.doPrivileged(new 
PrivilegedExceptionAction<Method>() {
-                public Method run() throws Exception {
-                    return clazz.getMethod(name, parameterTypes);
-                }
-            });
-        } catch (PrivilegedActionException pae) {
-            Exception e = pae.getException();
-            if (e instanceof NoSuchMethodException) {
-                throw (NoSuchMethodException)e;
-            }
-            throw new SecurityException(e);
-        }
-    }
-
-    private static <T extends AccessibleObject> T setAccessible(final T o) {
-        return AccessController.doPrivileged(new PrivilegedAction<T>() {
-            public T run() {
-                o.setAccessible(true);
-                return o;
-            }
-        });
-    }
-
     public static Element getSOAPHeader(Document doc) {
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         return
             XMLUtils.getDirectChildElement(
                 doc.getDocumentElement(), WSConstants.ELEM_HEADER, 
soapNamespace
@@ -171,7 +80,7 @@ public final class WSSecurityUtil {
             return null;
         }
 
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         return getSecurityHeader(soapHeaderElement, actor, 
WSConstants.URI_SOAP12_ENV.equals(soapNamespace));
     }
 
@@ -207,7 +116,7 @@ public final class WSSecurityUtil {
                 Attr attr = elem.getAttributeNodeNS(soapNamespace, actorLocal);
                 String hActor = (attr != null) ? attr.getValue() : null;
 
-                if (WSSecurityUtil.isActorEqual(actor, hActor)) {
+                if (XMLUtils.isActorEqual(actor, hActor)) {
                     if (foundSecurityHeader != null) {
                         LOG.debug(
                             "Two or more security headers have the same actor 
name: {}", actor
@@ -221,24 +130,6 @@ public final class WSSecurityUtil {
         return foundSecurityHeader;
     }
 
-
-    /**
-     * Compares two actor strings and returns true if these are equal. Takes
-     * care of the null length strings and uses ignore case.
-     *
-     * @param actor
-     * @param hActor
-     * @return true is the actor arguments are equal
-     */
-    public static boolean isActorEqual(String actor, String hActor) {
-        if ((hActor == null || hActor.length() == 0)
-            && (actor == null || actor.length() == 0)) {
-            return true;
-        }
-
-        return hActor != null && actor != null && 
hActor.equalsIgnoreCase(actor);
-    }
-
     /**
      * Gets all direct children with specified localname and namespace. <p/>
      *
@@ -315,175 +206,10 @@ public final class WSSecurityUtil {
      */
     public static WSEncryptionPart getDefaultEncryptionPart(Document doc) {
         String soapNamespace =
-            WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+            XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         return new WSEncryptionPart(WSConstants.ELEM_BODY, soapNamespace, 
"Content");
     }
 
-    /**
-     * create a new element in the same namespace <p/>
-     *
-     * @param parent for the new element
-     * @param localName of the new element
-     * @return the new element
-     */
-    private static Element createElementInSameNamespace(Node parent, String 
localName) {
-        String qName = localName;
-        String prefix = parent.getPrefix();
-        if (prefix != null && prefix.length() > 0) {
-            qName = prefix + ":" + localName;
-        }
-
-        String nsUri = parent.getNamespaceURI();
-        return parent.getOwnerDocument().createElementNS(nsUri, qName);
-    }
-
-
-
-
-    /**
-     * prepend a child element <p/>
-     *
-     * @param parent element of this child element
-     * @param child the element to append
-     * @return the child element
-     */
-    public static Element prependChildElement(
-        Element parent,
-        Element child
-    ) {
-        Node firstChild = parent.getFirstChild();
-        Element domChild = null;
-        try {
-            domChild = (Element)getDomElement(child);
-        } catch (WSSecurityException e) {
-            LOG.debug("Error when try to get Dom Element from the child", e);
-        }
-        if (firstChild == null) {
-            return (Element)parent.appendChild(domChild);
-        } else {
-            return (Element)parent.insertBefore(domChild, firstChild);
-        }
-    }
-
-
-    /**
-     * find the first ws-security header block <p/>
-     *
-     * @param doc the DOM document (SOAP request)
-     * @param envelope the SOAP envelope
-     * @param doCreate if true create a new WSS header block if none exists
-     * @return the WSS header or null if none found and doCreate is false
-     */
-    public static Element findWsseSecurityHeaderBlock(
-        Document doc,
-        Element envelope,
-        boolean doCreate
-    ) throws WSSecurityException {
-        return findWsseSecurityHeaderBlock(doc, envelope, null, doCreate);
-    }
-
-    /**
-     * find a WS-Security header block for a given actor <p/>
-     *
-     * @param doc the DOM document (SOAP request)
-     * @param envelope the SOAP envelope
-     * @param actor the actor (role) name of the WSS header
-     * @param doCreate if true create a new WSS header block if none exists
-     * @return the WSS header or null if none found and doCreate is false
-     */
-    public static Element findWsseSecurityHeaderBlock(
-        Document doc,
-        Element envelope,
-        String actor,
-        boolean doCreate
-    ) throws WSSecurityException {
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
-        Element header =
-            XMLUtils.getDirectChildElement(
-                doc.getDocumentElement(),
-                WSConstants.ELEM_HEADER,
-                soapNamespace
-            );
-        if (header == null) { // no SOAP header at all
-            if (doCreate) {
-                if (isSAAJ14) {
-                    try {
-                        Node node = null;
-                        Method method = 
GET_ENVELOPE_METHODS.get(doc.getClass());
-                        if (method != null) {
-                            try {
-                                node = (Node)setAccessible(method).invoke(doc);
-                            } catch (IllegalAccessException | 
IllegalArgumentException | InvocationTargetException e) {
-                                throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
-                            }
-                        }
-                        if (node != null) {
-                            header = createElementInSameNamespace(node, 
WSConstants.ELEM_HEADER);
-                        } else {
-                            header = 
createElementInSameNamespace(doc.getDocumentElement(), WSConstants.ELEM_HEADER);
-                        }
-                        header = (Element)doc.importNode(header, true);
-                        header = (Element)getDomElement(header);
-                        header = prependChildElement(envelope, header);
-
-                    } catch (Exception e) {
-                        throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
-                    }
-
-                } else {
-                    header = createElementInSameNamespace(envelope, 
WSConstants.ELEM_HEADER);
-                    header = prependChildElement(envelope, header);
-                }
-            } else {
-                return null;
-            }
-        }
-
-        String actorLocal = WSConstants.ATTR_ACTOR;
-        if (WSConstants.URI_SOAP12_ENV.equals(soapNamespace)) {
-            actorLocal = WSConstants.ATTR_ROLE;
-        }
-
-        //
-        // Iterate through the security headers
-        //
-        Element foundSecurityHeader = null;
-        for (
-            Node currentChild = header.getFirstChild();
-            currentChild != null;
-            currentChild = currentChild.getNextSibling()
-        ) {
-            if (Node.ELEMENT_NODE == currentChild.getNodeType()
-                && WSConstants.WSSE_LN.equals(currentChild.getLocalName())
-                && WSConstants.WSSE_NS.equals(currentChild.getNamespaceURI())) 
{
-
-                Element elem = (Element)currentChild;
-                Attr attr = elem.getAttributeNodeNS(soapNamespace, actorLocal);
-                String hActor = (attr != null) ? attr.getValue() : null;
-
-                if (WSSecurityUtil.isActorEqual(actor, hActor)) {
-                    if (foundSecurityHeader != null) {
-                        LOG.debug(
-                            "Two or more security headers have the same actor 
name: {}", actor
-                        );
-                        throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
-                    }
-                    foundSecurityHeader = elem;
-                }
-            }
-        }
-        if (foundSecurityHeader != null) {
-            return foundSecurityHeader;
-        } else if (doCreate) {
-            foundSecurityHeader = doc.createElementNS(WSConstants.WSSE_NS, 
"wsse:Security");
-            foundSecurityHeader.setAttributeNS(WSConstants.XMLNS_NS, 
"xmlns:wsse", WSConstants.WSSE_NS);
-            foundSecurityHeader = (Element)doc.importNode(foundSecurityHeader, 
true);
-            foundSecurityHeader = (Element)getDomElement(foundSecurityHeader);
-
-            return prependChildElement(header, foundSecurityHeader);
-        }
-        return null;
-    }
 
     /**
      * create a base64 test node <p/>
@@ -496,19 +222,6 @@ public final class WSSecurityUtil {
         return 
doc.createTextNode(org.apache.xml.security.utils.XMLUtils.encodeToString(data));
     }
 
-    public static SOAPConstants getSOAPConstants(Element startElement) {
-        Document doc = startElement.getOwnerDocument();
-        String ns = doc.getDocumentElement().getNamespaceURI();
-        if (WSConstants.URI_SOAP12_ENV.equals(ns)) {
-            return new SOAP12Constants();
-        }
-        return new SOAP11Constants();
-    }
-
-    public static String getSOAPNamespace(Element startElement) {
-        return getSOAPConstants(startElement).getEnvelopeURI();
-    }
-
     public static List<Integer> decodeAction(String action) throws 
WSSecurityException {
         String actionToParse = action;
         if (actionToParse == null) {
@@ -643,44 +356,6 @@ public final class WSSecurityUtil {
         }
     }
 
-    /**
-     * Register the jakarta.xml.soap.Node with new Cloned Dom Node with java9
-     * @param doc The SOAPDocumentImpl
-     * @param clonedElement The cloned Element
-     * @return new clonedElement which already associated with the SAAJ Node
-     * @throws WSSecurityException
-     */
-    public static Element cloneElement(Document doc, Element clonedElement) 
throws WSSecurityException {
-        clonedElement = (Element)clonedElement.cloneNode(true);
-        if (isSAAJ14) {
-            // here we need register the jakarta.xml.soap.Node with new 
instance
-            clonedElement = (Element)doc.importNode(clonedElement, true);
-            clonedElement = (Element)getDomElement(clonedElement);
-        }
-        return clonedElement;
-    }
-
-    /**
-     * Try to get the DOM Node from the SAAJ Node with JAVA9
-     * @param node The original node we need check
-     * @return The DOM node
-     * @throws WSSecurityException
-     */
-    private static Node getDomElement(Node node) throws WSSecurityException {
-        if (node != null && isSAAJ14) {
-
-            Method method = GET_DOM_ELEMENTS_METHODS.get(node.getClass());
-            if (method != null) {
-                try {
-                    return (Node)setAccessible(method).invoke(node);
-                } catch (IllegalAccessException | IllegalArgumentException | 
InvocationTargetException e) {
-                    throw new 
WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
-                }
-            }
-        }
-        return node;
-    }
-
     public static byte[] getBytesFromAttachment(
         String xopUri, RequestData data
     ) throws WSSecurityException {
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 732fe5ba3..49f82b4c3 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
@@ -36,7 +36,6 @@ import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.common.util.XMLUtils;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -83,7 +82,7 @@ public class EncryptedDataInHeaderTest {
             new WSEncryptionPart(
                 "Timestamp", WSConstants.WSU_NS, "");
         encrypt.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY, soapNamespace, "Content"
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 d53d89335..ae041a67e 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,8 +19,8 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.SOAPConstants;
 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;
@@ -165,7 +165,7 @@ public class EncryptionPartsTest {
                 "");
         encP.setRequired(false);
         encrypt.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -204,7 +204,7 @@ public class EncryptionPartsTest {
                 "");
         encP.setRequired(false);
         encrypt.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -242,7 +242,7 @@ public class EncryptionPartsTest {
                 "urn:foo.bar",
                 "");
         encrypt.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -430,8 +430,7 @@ public class EncryptionPartsTest {
     @Test
     public void testSOAPHeaderAndBody() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPMSG);
-        SOAPConstants soapConstants =
-            WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
@@ -502,8 +501,7 @@ public class EncryptionPartsTest {
     @Test
     public void testEncryptionPartDOMElement() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPMSG);
-        SOAPConstants soapConstants =
-            WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
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 6e44a441b..9bca837c1 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
@@ -29,6 +29,7 @@ import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
 import javax.security.auth.callback.CallbackHandler;
 
+import org.apache.wss4j.common.SOAPConstants;
 import org.apache.wss4j.common.WSEncryptionPart;
 import org.apache.wss4j.common.WSS4JConstants;
 import org.apache.wss4j.common.bsp.BSPRule;
@@ -37,7 +38,6 @@ import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.crypto.CryptoType;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.*;
-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;
@@ -52,7 +52,6 @@ import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.str.STRParser.REFERENCE_TYPE;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.xml.security.encryption.params.HKDFParams;
 import org.apache.xml.security.utils.EncryptionConstants;
 import org.junit.jupiter.api.AfterEach;
@@ -728,7 +727,7 @@ public class EncryptionTest {
         /*
          * Set up the parts structure to encrypt the body
          */
-        SOAPConstants soapConstants = WSSecurityUtil.getSOAPConstants(doc
+        SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc
                 .getDocumentElement());
         WSEncryptionPart encP = new WSEncryptionPart(soapConstants
                 .getBodyQName().getLocalPart(), soapConstants.getEnvelopeURI(),
@@ -799,7 +798,7 @@ public class EncryptionTest {
         /*
          * Set up the parts structure to encrypt the body
          */
-        SOAPConstants soapConstants = WSSecurityUtil.getSOAPConstants(doc
+        SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc
                 .getDocumentElement());
         java.util.List<WSEncryptionPart> parts = new ArrayList<>();
         WSEncryptionPart encP = new WSEncryptionPart(soapConstants
@@ -822,7 +821,7 @@ public class EncryptionTest {
          */
         Element encryptedKeyElement = builder.getEncryptedKeyElement();
         encryptedKeyElement.setAttributeNS(null, "Type", "SomeType");
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
encryptedKeyElement);
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
encryptedKeyElement);
 
         builder.prependBSTElementToHeader();
 
@@ -869,7 +868,7 @@ public class EncryptionTest {
         builder.prepare(crypto, symmetricKey);
         builder.setEmbedEncryptedKey(true);
 
-        SOAPConstants soapConstants = WSSecurityUtil.getSOAPConstants(doc
+        SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc
                 .getDocumentElement());
         java.util.List<WSEncryptionPart> parts = new ArrayList<>();
         WSEncryptionPart encP = new WSEncryptionPart(soapConstants
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 c769b7441..711acf471 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,10 +19,9 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.SOAPConstants;
 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;
 
@@ -61,7 +60,7 @@ public class STRSignatureTest {
     @Test
     public void testX509SignatureDirectSTR() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
-        SOAPConstants soapConstants = 
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
@@ -109,7 +108,7 @@ public class STRSignatureTest {
     @Test
     public void testWSS96() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
-        SOAPConstants soapConstants = 
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
@@ -166,7 +165,7 @@ public class STRSignatureTest {
     @Test
     public void testX509SignatureISSTR() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
-        SOAPConstants soapConstants = 
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
@@ -218,7 +217,7 @@ public class STRSignatureTest {
     @Test
     public void testX509SignatureSKISTR() throws Exception {
         Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
-        SOAPConstants soapConstants = 
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
         WSSecHeader secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
 
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 09e01c654..073e28172 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
@@ -19,10 +19,10 @@
 
 package org.apache.wss4j.dom.message;
 
+import org.apache.wss4j.common.SOAPConstants;
 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;
@@ -178,7 +178,7 @@ public class SignaturePartsTest {
                 "");
         encP.setRequired(false);
         sign.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -215,7 +215,7 @@ public class SignaturePartsTest {
                 "");
         encP.setRequired(false);
         sign.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -251,7 +251,7 @@ public class SignaturePartsTest {
                 "urn:foo.bar",
                 "");
         sign.getParts().add(encP);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
@@ -419,8 +419,7 @@ public class SignaturePartsTest {
         sign.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
         sign.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
 
-        SOAPConstants soapConstants =
-            WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
 
         WSEncryptionPart encP =
             new WSEncryptionPart(
@@ -489,8 +488,7 @@ public class SignaturePartsTest {
         sign.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
         sign.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
 
-        SOAPConstants soapConstants =
-            WSSecurityUtil.getSOAPConstants(doc.getDocumentElement());
+        SOAPConstants soapConstants = 
XMLUtils.getSOAPConstants(doc.getDocumentElement());
 
         // Give wrong names to make sure it's picking up the element
         WSEncryptionPart encP =
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 d420deaa4..473b92bfb 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
@@ -39,7 +39,6 @@ import org.apache.wss4j.dom.handler.HandlerAction;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -80,7 +79,7 @@ public class SignedBSTTest {
         String certUri = 
WSSConfig.getNewInstance().getIdAllocator().createSecureId("X509-", certs[0]);
         bst.setX509Certificate(certs[0]);
         bst.setID(certUri);
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         // Add the signature
         WSSecSignature sign = new WSSecSignature(secHeader);
@@ -90,7 +89,7 @@ public class SignedBSTTest {
         sign.setX509Certificate(certs[0]);
 
         // Add SOAP Body
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         WSEncryptionPart encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY, soapNamespace, "Content"
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 aa6e4f701..2929b99c8 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
@@ -43,7 +43,6 @@ import org.apache.wss4j.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.message.token.UsernameToken;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -93,7 +92,7 @@ public class UTDerivedKeyTest {
         usernameToken.addIteration(doc, 500);
         assertTrue(usernameToken.getIteration() == 500);
 
-        WSSecurityUtil.prependChildElement(
+        XMLUtils.prependChildElement(
             secHeader.getSecurityHeaderElement(), usernameToken.getElement()
         );
 
@@ -573,7 +572,7 @@ public class UTDerivedKeyTest {
         
encrBuilder.setCustomValueType(WSConstants.WSS_USERNAME_TOKEN_VALUE_TYPE);
         Document encryptedDoc = encrBuilder.build(derivedKey);
 
-        WSSecurityUtil.prependChildElement(
+        XMLUtils.prependChildElement(
             secHeader.getSecurityHeaderElement(), usernameToken.getElement()
         );
 
@@ -623,7 +622,7 @@ public class UTDerivedKeyTest {
         
encrBuilder.setCustomValueType(WSConstants.WSS_USERNAME_TOKEN_VALUE_TYPE);
         Document encryptedDoc = encrBuilder.build(derivedKey);
 
-        WSSecurityUtil.prependChildElement(
+        XMLUtils.prependChildElement(
             secHeader.getSecurityHeaderElement(), usernameToken.getElement()
         );
 
@@ -674,7 +673,7 @@ public class UTDerivedKeyTest {
         
encrBuilder.setCustomValueType(WSConstants.WSS_USERNAME_TOKEN_VALUE_TYPE);
         Document encryptedDoc = encrBuilder.build(derivedKey);
 
-        WSSecurityUtil.prependChildElement(
+        XMLUtils.prependChildElement(
             secHeader.getSecurityHeaderElement(), usernameToken.getElement()
         );
 
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 aa04ce570..e2f426209 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
@@ -157,7 +157,7 @@ public class XOPAttachmentTest {
         // Remove EncryptedData structure from the security header (which 
encrypted the attachment
         // in the first place)
         Element securityHeader =
-            WSSecurityUtil.findWsseSecurityHeaderBlock(encryptedDoc, 
encryptedDoc.getDocumentElement(), false);
+            XMLUtils.findWsseSecurityHeaderBlock(encryptedDoc, 
encryptedDoc.getDocumentElement(), false);
         Element encryptedAttachmentData =
             XMLUtils.getDirectChildElement(securityHeader, "EncryptedData", 
WSConstants.ENC_NS);
         assertNotNull(encryptedAttachmentData);
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 ad9f04af7..fd1b73480 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
@@ -39,7 +39,6 @@ import org.apache.wss4j.dom.message.WSSecEncrypt;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.wss4j.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 
@@ -89,7 +88,7 @@ public class BSTKerberosTest {
         bst.setValueType(AP_REQ);
         bst.setEncodingType(BASE64_NS);
         bst.setToken("12345678".getBytes());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             String outputString =
@@ -118,7 +117,7 @@ public class BSTKerberosTest {
         bst.setEncodingType(BASE64_NS);
         bst.setToken("12345678".getBytes());
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecSignature sign = new WSSecSignature(secHeader);
         sign.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
@@ -154,7 +153,7 @@ public class BSTKerberosTest {
         bst.setEncodingType(BASE64_NS);
         bst.setToken("12345678".getBytes());
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecTimestamp timestamp = new WSSecTimestamp(secHeader);
         timestamp.setTimeToLive(600);
@@ -192,7 +191,7 @@ public class BSTKerberosTest {
         bst.setValueType(AP_REQ);
         bst.setEncodingType(BASE64_NS);
         bst.setToken("12345678".getBytes());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             String outputString =
@@ -226,7 +225,7 @@ public class BSTKerberosTest {
         bst.setValueType(AP_REQ);
         bst.setEncodingType(BASE64_NS);
         bst.setToken("12345678".getBytes());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             String outputString =
@@ -270,7 +269,7 @@ public class BSTKerberosTest {
 
         bst.setToken(keyData);
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecSignature sign = new WSSecSignature(secHeader);
         sign.setSignatureAlgorithm(SignatureMethod.HMAC_SHA1);
@@ -309,7 +308,7 @@ public class BSTKerberosTest {
 
         bst.setToken(keyData);
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecSignature sign = new WSSecSignature(secHeader);
         sign.setSignatureAlgorithm(SignatureMethod.HMAC_SHA1);
@@ -350,7 +349,7 @@ public class BSTKerberosTest {
 
         bst.setToken(keyData);
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecEncrypt builder = new WSSecEncrypt(secHeader);
         builder.setSymmetricEncAlgorithm(WSConstants.AES_128);
@@ -387,7 +386,7 @@ public class BSTKerberosTest {
 
         bst.setToken(keyData);
         bst.setID("Id-" + bst.hashCode());
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSSecEncrypt builder = new WSSecEncrypt(secHeader);
         builder.setSymmetricEncAlgorithm(WSConstants.AES_128);
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 402549d15..cded61581 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
@@ -36,7 +36,6 @@ import org.apache.wss4j.common.token.PKIPathSecurity;
 import org.apache.wss4j.common.token.X509Security;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.message.WSSecHeader;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -75,7 +74,7 @@ public class BinarySecurityTokenTest {
         X509Certificate[] certs = crypto.getX509Certificates(cryptoType);
         bst.setX509Certificate(certs[0]);
 
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("BST output");
@@ -116,7 +115,7 @@ public class BinarySecurityTokenTest {
         X509Certificate[] certs = crypto.getX509Certificates(cryptoType);
         bst.setX509Certificates(certs, crypto);
 
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("PKIPath output");
@@ -150,7 +149,7 @@ public class BinarySecurityTokenTest {
         BinarySecurity bst = new BinarySecurity(doc);
         bst.setToken("12435677".getBytes());
 
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("Custom Token output");
@@ -175,7 +174,7 @@ public class BinarySecurityTokenTest {
         bst.setValueType("http://custom_value_Type";);
         secHeader = new WSSecHeader(doc);
         secHeader.insertSecurityHeader();
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         WSHandlerResult results =
             secEngine.processSecurityHeader(doc, null, null, crypto);
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 e834e45bb..8b9ac2b9d 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
@@ -52,7 +52,6 @@ import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.wss4j.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 
@@ -281,7 +280,7 @@ public class PrincipalTest {
         X509Certificate[] certs = crypto.getX509Certificates(cryptoType);
         bst.setX509Certificate(certs[0]);
 
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             String outputString =
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 4a44e9bc0..44dae2cbb 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
@@ -48,7 +48,6 @@ import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.message.WSSecDKSign;
 import org.apache.wss4j.dom.message.WSSecHeader;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -183,7 +182,7 @@ public class SamlTokenDerivedTest {
         WSSecDKSign sigBuilder = new WSSecDKSign(secHeader);
         sigBuilder.setStrElem(secToken.getElement());
         sigBuilder.setSignatureAlgorithm(WSConstants.HMAC_SHA1);
-        String soapNamespace = 
WSSecurityUtil.getSOAPNamespace(doc.getDocumentElement());
+        String soapNamespace = 
XMLUtils.getSOAPNamespace(doc.getDocumentElement());
         WSEncryptionPart encP =
             new WSEncryptionPart(
                 WSConstants.ELEM_BODY,
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 662f3d552..51e31445e 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
@@ -50,7 +50,6 @@ import org.apache.wss4j.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
-import org.apache.wss4j.dom.util.WSSecurityUtil;
 
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
@@ -199,7 +198,7 @@ public class ValidatorTest {
         X509Certificate[] certs = crypto.getX509Certificates(cryptoType);
         bst.setX509Certificate(certs[0]);
 
-        
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
+        XMLUtils.prependChildElement(secHeader.getSecurityHeaderElement(), 
bst.getElement());
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("BST output");


Reply via email to