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 <[email protected]>
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;