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 1b2f0abd4 Moving callback into ws-security-common 1b2f0abd4 is described below commit 1b2f0abd4e1eaebd6ac6b7b1df7517ac78c0bb9e Author: Colm O hEigeartaigh <cohei...@apache.org> AuthorDate: Tue Jun 17 09:42:19 2025 +0100 Moving callback into ws-security-common --- .../wss4j/common}/dom/callback/CallbackLookup.java | 2 +- .../common}/dom/callback/DOMCallbackLookup.java | 23 +++++++++++----------- .../org/apache/wss4j/common/util/XMLUtils.java | 13 ++++++++++++ .../main/java/org/apache/wss4j/dom/WSDocInfo.java | 4 ++-- .../apache/wss4j/dom/engine/WSSecurityEngine.java | 4 ++-- .../org/apache/wss4j/dom/message/Encryptor.java | 4 ++-- .../org/apache/wss4j/dom/message/WSSecBase.java | 4 ++-- .../wss4j/dom/message/WSSecSignatureBase.java | 2 +- .../wss4j/dom/processor/SignatureProcessor.java | 2 +- .../org/apache/wss4j/dom/str/STRParserUtil.java | 4 ++-- .../org/apache/wss4j/dom/util/EncryptionUtils.java | 2 +- .../org/apache/wss4j/dom/util/WSSecurityUtil.java | 2 +- 12 files changed, 39 insertions(+), 27 deletions(-) diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/CallbackLookup.java b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/CallbackLookup.java similarity index 98% rename from ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/CallbackLookup.java rename to ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/CallbackLookup.java index eab583286..2d7769110 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/CallbackLookup.java +++ b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/CallbackLookup.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.wss4j.dom.callback; +package org.apache.wss4j.common.dom.callback; import java.util.List; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/DOMCallbackLookup.java b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/DOMCallbackLookup.java similarity index 88% rename from ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/DOMCallbackLookup.java rename to ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/DOMCallbackLookup.java index 7a9cf38d8..423a6b2de 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/callback/DOMCallbackLookup.java +++ b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/callback/DOMCallbackLookup.java @@ -17,17 +17,16 @@ * under the License. */ -package org.apache.wss4j.dom.callback; +package org.apache.wss4j.common.dom.callback; import java.util.Collections; import java.util.List; import javax.xml.crypto.dom.DOMCryptoContext; -import org.apache.wss4j.dom.WSConstants; +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; @@ -84,10 +83,10 @@ public class DOMCallbackLookup implements CallbackLookup { // Element bodyElement = getSOAPBody(); if (bodyElement != null) { - String cId = bodyElement.getAttributeNS(WSConstants.WSU_NS, "Id"); + String cId = bodyElement.getAttributeNS(WSS4JConstants.WSU_NS, "Id"); if (cId.equals(idToMatch)) { if (context != null) { - context.setIdAttributeNS(bodyElement, WSConstants.WSU_NS, "Id"); + context.setIdAttributeNS(bodyElement, WSS4JConstants.WSU_NS, "Id"); } return bodyElement; } @@ -97,9 +96,9 @@ public class DOMCallbackLookup implements CallbackLookup { XMLUtils.findElementById(doc.getDocumentElement(), idToMatch, checkMultipleElements); if (foundElement != null) { if (context != null) { - if (foundElement.hasAttributeNS(WSConstants.WSU_NS, "Id") - && idToMatch.equals(foundElement.getAttributeNS(WSConstants.WSU_NS, "Id"))) { - context.setIdAttributeNS(foundElement, WSConstants.WSU_NS, "Id"); + if (foundElement.hasAttributeNS(WSS4JConstants.WSU_NS, "Id") + && idToMatch.equals(foundElement.getAttributeNS(WSS4JConstants.WSU_NS, "Id"))) { + context.setIdAttributeNS(foundElement, WSS4JConstants.WSU_NS, "Id"); } if (foundElement.hasAttributeNS(null, "Id") && idToMatch.equals(foundElement.getAttributeNS(null, "Id"))) { @@ -113,8 +112,8 @@ public class DOMCallbackLookup implements CallbackLookup { // Try to find a SAML Assertion Element if the ValueType corresponds to a SAML Assertion // (or is empty) // - if (WSConstants.WSS_SAML_KI_VALUE_TYPE.equals(valueType) - || WSConstants.WSS_SAML2_KI_VALUE_TYPE.equals(valueType) + if (WSS4JConstants.WSS_SAML_KI_VALUE_TYPE.equals(valueType) + || WSS4JConstants.WSS_SAML2_KI_VALUE_TYPE.equals(valueType) || valueType == null || valueType.length() == 0) { foundElement = XMLUtils.findSAMLAssertionElementById( @@ -152,7 +151,7 @@ public class DOMCallbackLookup implements CallbackLookup { // Try the SOAP Body first // Element bodyElement = getSOAPBody(); - if (WSConstants.ELEM_BODY.equals(localname) && bodyElement.getNamespaceURI().equals(namespace)) { + if (WSS4JConstants.ELEM_BODY.equals(localname) && bodyElement.getNamespaceURI().equals(namespace)) { return Collections.singletonList(bodyElement); } return XMLUtils.findElements(doc.getDocumentElement(), localname, namespace); @@ -163,6 +162,6 @@ public class DOMCallbackLookup implements CallbackLookup { * Get the SOAP Body */ public Element getSOAPBody() { - return WSSecurityUtil.findBodyElement(doc); + return XMLUtils.findBodyElement(doc); } } 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 d09fcb35b..40296dcce 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 @@ -830,4 +830,17 @@ public final class XMLUtils { } return clonedElement; } + + /** + * return the first soap "Body" element. <p/> + * + * @param doc + * @return the body element or <code>null</code> if document does not + * contain a SOAP body + */ + public static Element findBodyElement(Document doc) { + Element docElement = doc.getDocumentElement(); + String ns = docElement.getNamespaceURI(); + return XMLUtils.getDirectChildElement(docElement, WSS4JConstants.ELEM_BODY, ns); + } } diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java index cecfde6d7..25143486e 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java @@ -40,10 +40,10 @@ import java.util.Map; import javax.xml.crypto.dom.DOMCryptoContext; import org.apache.wss4j.common.crypto.Crypto; +import org.apache.wss4j.common.dom.callback.CallbackLookup; +import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult; import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.common.util.XMLUtils; -import org.apache.wss4j.dom.callback.CallbackLookup; -import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSecurityEngine.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSecurityEngine.java index a51c15dbf..f5dad8716 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSecurityEngine.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSecurityEngine.java @@ -30,11 +30,11 @@ import javax.xml.namespace.QName; import org.apache.wss4j.common.bsp.BSPRule; import org.apache.wss4j.common.crypto.Crypto; import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult; +import org.apache.wss4j.common.dom.callback.CallbackLookup; +import org.apache.wss4j.common.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.dom.WSDocInfo; -import org.apache.wss4j.dom.callback.CallbackLookup; -import org.apache.wss4j.dom.callback.DOMCallbackLookup; import org.apache.wss4j.dom.handler.RequestData; import org.apache.wss4j.dom.handler.WSHandlerResult; import org.apache.wss4j.dom.processor.Processor; 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 77f407f93..26300f7a7 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 @@ -35,6 +35,8 @@ import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.wss4j.common.WSEncryptionPart; +import org.apache.wss4j.common.dom.callback.CallbackLookup; +import org.apache.wss4j.common.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.ext.Attachment; import org.apache.wss4j.common.ext.AttachmentRequestCallback; import org.apache.wss4j.common.ext.AttachmentResultCallback; @@ -44,8 +46,6 @@ import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.dom.WSDocInfo; import org.apache.wss4j.dom.WsuIdAllocator; -import org.apache.wss4j.dom.callback.CallbackLookup; -import org.apache.wss4j.dom.callback.DOMCallbackLookup; import org.apache.wss4j.dom.util.WSSecurityUtil; import org.apache.xml.security.algorithms.JCEMapper; import org.apache.xml.security.encryption.AbstractSerializer; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java index c7f232afd..aa2020bd4 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecBase.java @@ -20,12 +20,12 @@ package org.apache.wss4j.dom.message; import org.apache.wss4j.common.WSEncryptionPart; +import org.apache.wss4j.common.dom.callback.CallbackLookup; +import org.apache.wss4j.common.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.dom.WSDocInfo; import org.apache.wss4j.dom.WsuIdAllocator; -import org.apache.wss4j.dom.callback.CallbackLookup; -import org.apache.wss4j.dom.callback.DOMCallbackLookup; import org.apache.wss4j.dom.engine.WSSConfig; import org.w3c.dom.Document; import org.w3c.dom.Element; 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 6c907165d..e86575f2e 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 @@ -36,6 +36,7 @@ import javax.xml.crypto.dsig.spec.TransformParameterSpec; import org.apache.wss4j.common.WSEncryptionPart; +import org.apache.wss4j.common.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.ext.Attachment; import org.apache.wss4j.common.ext.AttachmentRequestCallback; import org.apache.wss4j.common.ext.WSSecurityException; @@ -43,7 +44,6 @@ import org.apache.wss4j.common.util.AttachmentUtils; import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.dom.WSDocInfo; -import org.apache.wss4j.dom.callback.DOMCallbackLookup; import org.apache.wss4j.dom.transform.AttachmentTransformParameterSpec; import org.apache.wss4j.dom.transform.STRTransform; import org.apache.wss4j.dom.util.SignatureUtils; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java index 75436f988..8d352dd99 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java @@ -53,6 +53,7 @@ import org.apache.wss4j.common.crypto.AlgorithmSuite; import org.apache.wss4j.common.crypto.AlgorithmSuiteValidator; import org.apache.wss4j.common.crypto.Crypto; import org.apache.wss4j.common.crypto.CryptoType; +import org.apache.wss4j.common.dom.callback.CallbackLookup; import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.common.principal.PublicKeyPrincipalImpl; import org.apache.wss4j.common.principal.UsernameTokenPrincipal; @@ -64,7 +65,6 @@ import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.common.WSDataRef; import org.apache.wss4j.dom.WSDocInfo; -import org.apache.wss4j.dom.callback.CallbackLookup; import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult; import org.apache.wss4j.dom.handler.RequestData; import org.apache.wss4j.dom.message.token.Timestamp; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/STRParserUtil.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/STRParserUtil.java index 287ece355..d05a4e20b 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/STRParserUtil.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/STRParserUtil.java @@ -26,6 +26,8 @@ import javax.security.auth.callback.CallbackHandler; import org.apache.wss4j.common.bsp.BSPEnforcer; import org.apache.wss4j.common.bsp.BSPRule; +import org.apache.wss4j.common.dom.callback.CallbackLookup; +import org.apache.wss4j.common.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.ext.WSPasswordCallback; import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.common.saml.SamlAssertionWrapper; @@ -36,8 +38,6 @@ import org.apache.wss4j.common.token.X509Security; import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.dom.WSDocInfo; -import org.apache.wss4j.dom.callback.CallbackLookup; -import org.apache.wss4j.dom.callback.DOMCallbackLookup; import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult; import org.apache.wss4j.dom.handler.RequestData; import org.apache.wss4j.dom.message.token.KerberosSecurity; diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java index 956867f1e..208c80063 100644 --- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java +++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java @@ -19,6 +19,7 @@ package org.apache.wss4j.dom.util; +import org.apache.wss4j.common.dom.callback.CallbackLookup; import org.apache.wss4j.common.ext.Attachment; import org.apache.wss4j.common.ext.AttachmentRequestCallback; import org.apache.wss4j.common.ext.AttachmentResultCallback; @@ -28,7 +29,6 @@ import org.apache.wss4j.common.util.XMLUtils; import org.apache.wss4j.dom.WSConstants; import org.apache.wss4j.common.WSDataRef; import org.apache.wss4j.dom.WSDocInfo; -import org.apache.wss4j.dom.callback.CallbackLookup; import org.apache.xml.security.algorithms.JCEMapper; import org.apache.xml.security.encryption.Serializer; import org.apache.xml.security.encryption.XMLCipher; 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 8ef84c00a..0f6d91c82 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 @@ -20,9 +20,9 @@ package org.apache.wss4j.dom.util; import org.apache.wss4j.dom.WSConstants; -import org.apache.wss4j.dom.callback.CallbackLookup; import org.apache.wss4j.dom.engine.WSSConfig; import org.apache.wss4j.common.WSEncryptionPart; +import org.apache.wss4j.common.dom.callback.CallbackLookup; import org.apache.wss4j.common.ext.WSSecurityException; import org.apache.wss4j.common.util.AttachmentUtils; import org.apache.wss4j.common.util.XMLUtils;