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
commit b87e347a037d2a9656706ceacc834af73fb2c827 Author: Colm O hEigeartaigh <[email protected]> AuthorDate: Tue Jul 8 09:24:09 2025 +0100 Moving SOAPConstants to DOM API --- .../main/java/org/apache/wss4j/api/dom/RequestData.java | 1 - .../java/org/apache/wss4j/api/dom}/SOAP11Constants.java | 4 +++- .../java/org/apache/wss4j/api/dom}/SOAP12Constants.java | 4 +++- .../java/org/apache/wss4j/api/dom}/SOAPConstants.java | 15 ++++++++++++++- .../main/java/org/apache/wss4j/common/util/XMLUtils.java | 15 ++------------- .../main/java/org/apache/wss4j/dom/handler/WSHandler.java | 3 ++- .../org/apache/wss4j/dom/message/EncryptionPartsTest.java | 6 +++--- .../java/org/apache/wss4j/dom/message/EncryptionTest.java | 11 ++++------- .../org/apache/wss4j/dom/message/STRSignatureTest.java | 10 +++++----- .../org/apache/wss4j/dom/message/SignaturePartsTest.java | 6 +++--- .../java/org/apache/wss4j/stax/test/AbstractTestBase.java | 4 ++-- 11 files changed, 41 insertions(+), 38 deletions(-) diff --git a/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/RequestData.java b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/RequestData.java index 952b88a10..f39ab5254 100644 --- a/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/RequestData.java +++ b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/RequestData.java @@ -35,7 +35,6 @@ 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; diff --git a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP11Constants.java similarity index 96% rename from ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java rename to ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP11Constants.java index 86d2a4b4b..e6597a938 100644 --- a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP11Constants.java +++ b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP11Constants.java @@ -17,10 +17,12 @@ * under the License. */ -package org.apache.wss4j.common; +package org.apache.wss4j.api.dom; import javax.xml.namespace.QName; +import org.apache.wss4j.common.WSS4JConstants; + /** * SOAP 1.1 constants */ diff --git a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP12Constants.java similarity index 96% rename from ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java rename to ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP12Constants.java index 938760b78..cc888a0c0 100644 --- a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAP12Constants.java +++ b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAP12Constants.java @@ -17,10 +17,12 @@ * under the License. */ -package org.apache.wss4j.common; +package org.apache.wss4j.api.dom; import javax.xml.namespace.QName; +import org.apache.wss4j.common.WSS4JConstants; + /** * SOAP 1.2 constants */ diff --git a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAPConstants.java similarity index 81% rename from ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java rename to ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAPConstants.java index aac35dca3..7a01d448d 100644 --- a/ws-security-common/src/main/java/org/apache/wss4j/common/SOAPConstants.java +++ b/ws-security-api-dom/src/main/java/org/apache/wss4j/api/dom/SOAPConstants.java @@ -17,9 +17,14 @@ * under the License. */ -package org.apache.wss4j.common; +package org.apache.wss4j.api.dom; import javax.xml.namespace.QName; + +import org.apache.wss4j.common.WSS4JConstants; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + import java.io.Serializable; /** @@ -71,5 +76,13 @@ public interface SOAPConstants extends Serializable { */ String getMustUnderstand(); + 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(); + } } 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 a62f5bb09..dcc4da023 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 @@ -44,9 +44,6 @@ 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; @@ -829,17 +826,9 @@ public final class XMLUtils { 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(); + Document doc = startElement.getOwnerDocument(); + return doc.getDocumentElement().getNamespaceURI(); } /** 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 3c5638c7e..a46398721 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 @@ -29,6 +29,7 @@ import javax.security.auth.callback.CallbackHandler; import org.apache.wss4j.api.dom.WSConstants; import org.apache.wss4j.api.dom.RequestData; +import org.apache.wss4j.api.dom.SOAPConstants; import org.apache.wss4j.api.dom.WSDocInfo; import org.apache.wss4j.api.dom.engine.WSSConfig; import org.apache.wss4j.api.dom.engine.WSSecurityEngineResult; @@ -109,7 +110,7 @@ public abstract class WSHandler { WSSecHeader secHeader = new WSSecHeader(actor, mu, doc); secHeader.insertSecurityHeader(); reqData.setSecHeader(secHeader); - reqData.setSoapConstants(XMLUtils.getSOAPConstants(doc.getDocumentElement())); + reqData.setSoapConstants(SOAPConstants.getSOAPConstants(doc.getDocumentElement())); // Load CallbackHandler if (reqData.getCallbackHandler() == null) { 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 f05881c0a..c622781bb 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,7 +19,7 @@ package org.apache.wss4j.dom.message; -import org.apache.wss4j.common.SOAPConstants; +import org.apache.wss4j.api.dom.SOAPConstants; import org.apache.wss4j.common.util.SOAPUtil; import org.apache.wss4j.common.WSDataRef; import org.apache.wss4j.api.dom.WSConstants; @@ -431,7 +431,7 @@ public class EncryptionPartsTest { @Test public void testSOAPHeaderAndBody() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPMSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSSecHeader secHeader = new WSSecHeader(doc); secHeader.insertSecurityHeader(); @@ -502,7 +502,7 @@ public class EncryptionPartsTest { @Test public void testEncryptionPartDOMElement() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPMSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.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 7e2610ea8..db7b92b84 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,7 +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.api.dom.SOAPConstants; import org.apache.wss4j.common.WSEncryptionPart; import org.apache.wss4j.common.WSS4JConstants; import org.apache.wss4j.common.bsp.BSPRule; @@ -728,8 +728,7 @@ public class EncryptionTest { /* * Set up the parts structure to encrypt the body */ - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc - .getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSEncryptionPart encP = new WSEncryptionPart(soapConstants .getBodyQName().getLocalPart(), soapConstants.getEnvelopeURI(), "Content"); @@ -799,8 +798,7 @@ public class EncryptionTest { /* * Set up the parts structure to encrypt the body */ - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc - .getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); java.util.List<WSEncryptionPart> parts = new ArrayList<>(); WSEncryptionPart encP = new WSEncryptionPart(soapConstants .getBodyQName().getLocalPart(), soapConstants.getEnvelopeURI(), @@ -869,8 +867,7 @@ public class EncryptionTest { builder.prepare(crypto, symmetricKey); builder.setEmbedEncryptedKey(true); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc - .getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); java.util.List<WSEncryptionPart> parts = new ArrayList<>(); WSEncryptionPart encP = new WSEncryptionPart(soapConstants .getBodyQName().getLocalPart(), soapConstants.getEnvelopeURI(), 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 70b6370ff..ccf4ecd19 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,7 +19,7 @@ package org.apache.wss4j.dom.message; -import org.apache.wss4j.common.SOAPConstants; +import org.apache.wss4j.api.dom.SOAPConstants; import org.apache.wss4j.common.util.SOAPUtil; import org.apache.wss4j.api.dom.WSConstants; @@ -62,7 +62,7 @@ public class STRSignatureTest { @Test public void testX509SignatureDirectSTR() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSSecHeader secHeader = new WSSecHeader(doc); secHeader.insertSecurityHeader(); @@ -110,7 +110,7 @@ public class STRSignatureTest { @Test public void testWSS96() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSSecHeader secHeader = new WSSecHeader(doc); secHeader.insertSecurityHeader(); @@ -167,7 +167,7 @@ public class STRSignatureTest { @Test public void testX509SignatureISSTR() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSSecHeader secHeader = new WSSecHeader(doc); secHeader.insertSecurityHeader(); @@ -219,7 +219,7 @@ public class STRSignatureTest { @Test public void testX509SignatureSKISTR() throws Exception { Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.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 3ea50812a..0befb6e19 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,7 +19,7 @@ package org.apache.wss4j.dom.message; -import org.apache.wss4j.common.SOAPConstants; +import org.apache.wss4j.api.dom.SOAPConstants; import org.apache.wss4j.common.WSEncryptionPart; import org.apache.wss4j.common.util.SOAPUtil; import org.apache.wss4j.common.WSDataRef; @@ -329,7 +329,7 @@ public class SignaturePartsTest { sign.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security"); sign.setKeyIdentifierType(WSConstants.ISSUER_SERIAL); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); WSEncryptionPart encP = new WSEncryptionPart( @@ -398,7 +398,7 @@ public class SignaturePartsTest { sign.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security"); sign.setKeyIdentifierType(WSConstants.ISSUER_SERIAL); - SOAPConstants soapConstants = XMLUtils.getSOAPConstants(doc.getDocumentElement()); + SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); // Give wrong names to make sure it's picking up the element WSEncryptionPart encP = diff --git a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java index 6f098e3cb..24e16dc56 100644 --- a/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java +++ b/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/AbstractTestBase.java @@ -60,6 +60,7 @@ import org.apache.wss4j.api.dom.engine.WSSConfig; import org.apache.wss4j.dom.engine.WSSecurityEngine; import org.apache.wss4j.dom.handler.HandlerAction; import org.apache.wss4j.api.dom.RequestData; +import org.apache.wss4j.api.dom.SOAPConstants; import org.apache.wss4j.dom.handler.WSHandler; import org.apache.wss4j.dom.handler.WSHandlerConstants; import org.apache.wss4j.dom.handler.WSHandlerResult; @@ -461,8 +462,7 @@ public abstract class AbstractTestBase { /* * Check if it's a fault. Don't process faults. */ - org.apache.wss4j.common.SOAPConstants soapConstants = - org.apache.wss4j.common.util.XMLUtils.getSOAPConstants(doc.getDocumentElement()); + org.apache.wss4j.api.dom.SOAPConstants soapConstants = SOAPConstants.getSOAPConstants(doc.getDocumentElement()); if (XMLUtils.findElement( doc.getDocumentElement(), "Fault", soapConstants.getEnvelopeURI()) != null ) {
