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 7fa4c30dc Relying only on RequestData.getMessageContext() instead of 
WSHandler
7fa4c30dc is described below

commit 7fa4c30dcda311c477dd48c6ef20dbff5d8917e6
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Wed Jun 18 16:46:57 2025 +0100

    Relying only on RequestData.getMessageContext() instead of WSHandler
---
 .../apache/wss4j/dom/action/EncryptionAction.java  |  2 +-
 .../dom/action/SignatureConfirmationAction.java    |  9 ++--
 .../org/apache/wss4j/dom/handler/RequestData.java  |  7 +--
 .../org/apache/wss4j/dom/handler/WSHandler.java    | 50 +++++++++-------------
 .../org/apache/wss4j/dom/common/CustomAction.java  |  7 ++-
 .../org/apache/wss4j/dom/common/CustomHandler.java | 18 --------
 .../apache/wss4j/dom/handler/CallbackRefTest.java  |  2 +-
 .../dom/handler/CustomActionProcessorTest.java     | 19 ++++----
 .../wss4j/dom/message/SignatureCertTest.java       |  2 +-
 .../apache/wss4j/stax/test/AbstractTestBase.java   | 12 ------
 10 files changed, 46 insertions(+), 82 deletions(-)

diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
index 029f92634..0c09795c2 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
@@ -91,7 +91,7 @@ public class EncryptionAction implements Action {
         wsEncrypt.setUserInfo(encryptionToken.getUser());
         wsEncrypt.setUseThisCert(encryptionToken.getCertificate());
         Crypto crypto = encryptionToken.getCrypto();
-        boolean enableRevocation = 
Boolean.parseBoolean(handler.getStringOption(WSHandlerConstants.ENABLE_REVOCATION));
+        boolean enableRevocation = 
Boolean.parseBoolean((String)reqData.getMsgContext().get(WSHandlerConstants.ENABLE_REVOCATION));
         if (enableRevocation && crypto != null) {
             CryptoType cryptoType = new CryptoType(CryptoType.TYPE.ALIAS);
             cryptoType.setAlias(encryptionToken.getUser());
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
index 6bffe2517..66fd8e011 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
@@ -43,9 +43,7 @@ public class SignatureConfirmationAction implements Action {
         LOG.debug("Perform Signature confirmation");
 
         List<WSHandlerResult> results =
-            (List<WSHandlerResult>) handler.getProperty(
-                reqData.getMsgContext(), WSHandlerConstants.RECV_RESULTS
-            );
+            (List<WSHandlerResult>) 
reqData.getMsgContext().get(WSHandlerConstants.RECV_RESULTS);
         if (results == null || results.isEmpty()) {
             return;
         }
@@ -90,9 +88,8 @@ public class SignatureConfirmationAction implements Action {
             wsc.build(null);
             signatureParts.add(new WSEncryptionPart(wsc.getId()));
         }
-        handler.setProperty(
-            reqData.getMsgContext(), WSHandlerConstants.SIG_CONF_DONE, ""
-        );
+
+        reqData.getMsgContext().put(WSHandlerConstants.SIG_CONF_DONE, "");
     }
 
 }
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 7ddf9da8e..f1029fa99 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
@@ -23,6 +23,7 @@ import java.security.Provider;
 import java.security.cert.Certificate;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -54,7 +55,7 @@ import org.apache.xml.security.encryption.Serializer;
  */
 public class RequestData {
 
-    private Object msgContext;
+    private Map<String, Object> msgContext = Collections.emptyMap();
     private SOAPConstants soapConstants;
     private String actor;
     private String username;
@@ -197,11 +198,11 @@ public class RequestData {
 
     private boolean expandXopInclude;
 
-    public Object getMsgContext() {
+    public Map<String, Object> getMsgContext() {
         return msgContext;
     }
 
-    public void setMsgContext(Object msgContext) {
+    public void setMsgContext(Map<String, Object> msgContext) {
         this.msgContext = msgContext;
     }
 
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 7f01d3bfa..c23b8e22b 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
@@ -86,7 +86,7 @@ public abstract class WSHandler {
             reqData.setWsDocInfo(wsDocInfo);
         }
 
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
         reqData.setEncodePasswords(
             decodeBooleanConfigValue(mc, 
WSHandlerConstants.USE_ENCODED_PASSWORDS, false)
         );
@@ -196,7 +196,7 @@ public abstract class WSHandler {
          */
         if (reqData.isEnableSignatureConfirmation() && !isRequest) {
             String done =
-                (String)getProperty(reqData.getMsgContext(), 
WSHandlerConstants.SIG_CONF_DONE);
+                
(String)reqData.getMsgContext().get(WSHandlerConstants.SIG_CONF_DONE);
             if (done == null) {
                 wssConfig.getAction(WSConstants.SC).execute(this, null, 
reqData);
             }
@@ -251,12 +251,10 @@ public abstract class WSHandler {
             && isRequest && !reqData.getSignatureValues().isEmpty()) {
             @SuppressWarnings("unchecked")
             Set<Integer> savedSignatures =
-                (Set<Integer>)getProperty(reqData.getMsgContext(), 
WSHandlerConstants.SEND_SIGV);
+                
(Set<Integer>)reqData.getMsgContext().get(WSHandlerConstants.SEND_SIGV);
             if (savedSignatures == null) {
                 savedSignatures = new HashSet<>();
-                setProperty(
-                    reqData.getMsgContext(), WSHandlerConstants.SEND_SIGV, 
savedSignatures
-                );
+                reqData.getMsgContext().put(WSHandlerConstants.SEND_SIGV, 
savedSignatures);
             }
             for (byte[] signatureValue : reqData.getSignatureValues()) {
                 savedSignatures.add(Arrays.hashCode(signatureValue));
@@ -303,7 +301,7 @@ public abstract class WSHandler {
             reqData.setWssConfig(wssConfig);
         }
 
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
         boolean enableSigConf =
             decodeBooleanConfigValue(mc, 
WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, false);
         reqData.setEnableSignatureConfirmation(
@@ -427,7 +425,7 @@ public abstract class WSHandler {
         // First get all Signature values stored during sending the request
         //
         Set<Integer> savedSignatures =
-            (Set<Integer>) getProperty(reqData.getMsgContext(), 
WSHandlerConstants.SEND_SIGV);
+            (Set<Integer>) 
reqData.getMsgContext().get(WSHandlerConstants.SEND_SIGV);
         //
         // Now get all results that hold a SignatureConfirmation element from
         // the current run of receiver (we can have more than one run: if we
@@ -489,7 +487,7 @@ public abstract class WSHandler {
 
     protected void decodeUTParameter(RequestData reqData)
         throws WSSecurityException {
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
 
         String type = getString(WSHandlerConstants.PASSWORD_TYPE, mc);
         if (type != null) {
@@ -534,7 +532,7 @@ public abstract class WSHandler {
     // the RequestData object
     protected void decodeSignatureParameter(RequestData reqData)
         throws WSSecurityException {
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
         String signatureUser = getString(WSHandlerConstants.SIGNATURE_USER, 
mc);
 
         SignatureActionToken actionToken = reqData.getSignatureToken();
@@ -635,7 +633,7 @@ public abstract class WSHandler {
     }
 
     protected void decodeAlgorithmSuite(RequestData reqData) throws 
WSSecurityException {
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
         if (mc == null || reqData.getAlgorithmSuite() != null) {
             return;
         }
@@ -677,7 +675,7 @@ public abstract class WSHandler {
     // the RequestData object
     protected void decodeEncryptionParameter(RequestData reqData)
         throws WSSecurityException {
-        Object mc = reqData.getMsgContext();
+        Map<String, Object> mc = reqData.getMsgContext();
 
         EncryptionActionToken actionToken = reqData.getEncryptionToken();
         if (actionToken == null) {
@@ -727,7 +725,7 @@ public abstract class WSHandler {
                 getString(WSHandlerConstants.ENC_KEY_DERIVATION_FUNCTION, mc);
         actionToken.setKeyDerivationFunction(encKeyDerivationAlgorithm);
 
-        Object obj = getProperty(mc, 
WSHandlerConstants.ENC_KEY_DERIVATION_PARAMS);
+        Object obj = mc.get(WSHandlerConstants.ENC_KEY_DERIVATION_PARAMS);
         if (obj instanceof KeyDerivationParameters) {
             
actionToken.setKeyDerivationParameters((KeyDerivationParameters)obj);
         }
@@ -864,7 +862,7 @@ public abstract class WSHandler {
     }
 
     protected boolean decodeBooleanConfigValue(
-        Object messageContext, String configTag, boolean defaultToTrue
+        Map<String, Object> messageContext, String configTag, boolean 
defaultToTrue
     ) throws WSSecurityException {
 
         String value = getString(configTag, messageContext);
@@ -963,7 +961,7 @@ public abstract class WSHandler {
         String cryptoPropertyRefId,
         RequestData requestData
     ) throws WSSecurityException {
-        Object mc = requestData.getMsgContext();
+        Map<String, Object> mc = requestData.getMsgContext();
         Crypto crypto = null;
 
         //
@@ -973,7 +971,7 @@ public abstract class WSHandler {
         if (refId != null) {
             crypto = cryptos.get(refId);
             if (crypto == null) {
-                Object obj = getProperty(mc, refId);
+                Object obj = mc.get(refId);
                 if (obj instanceof Properties) {
                     crypto = CryptoFactory.getInstance((Properties)obj,
                                                        
Loader.getClassLoader(CryptoFactory.class),
@@ -1049,10 +1047,10 @@ public abstract class WSHandler {
         String callbackHandlerRef,
         RequestData requestData
     ) throws WSSecurityException {
-        Object mc = requestData.getMsgContext();
+        Map<String, Object> mc = requestData.getMsgContext();
         CallbackHandler cbHandler = (CallbackHandler) 
getOption(callbackHandlerRef);
         if (cbHandler == null) {
-            cbHandler = (CallbackHandler) getProperty(mc, callbackHandlerRef);
+            cbHandler = (CallbackHandler) mc.get(callbackHandlerRef);
         }
         if (cbHandler == null) {
             String callback = getString(callbackHandlerClass, mc);
@@ -1125,8 +1123,8 @@ public abstract class WSHandler {
             }
         }
         if (passwordEncryptor == null) {
-            Object mc = requestData.getMsgContext();
-            Object o = getProperty(mc, 
WSHandlerConstants.PASSWORD_ENCRYPTOR_INSTANCE);
+            Map<String, Object> mc = requestData.getMsgContext();
+            Object o = mc.get(WSHandlerConstants.PASSWORD_ENCRYPTOR_INSTANCE);
             if (o instanceof PasswordEncryptor) {
                 passwordEncryptor = (PasswordEncryptor) o;
             }
@@ -1201,9 +1199,7 @@ public abstract class WSHandler {
             return;
         }
         List<WSHandlerResult> results =
-            (List<WSHandlerResult>) getProperty(
-                reqData.getMsgContext(), WSHandlerConstants.RECV_RESULTS
-            );
+            (List<WSHandlerResult>) 
reqData.getMsgContext().get(WSHandlerConstants.RECV_RESULTS);
         if (results == null) {
             return;
         }
@@ -1335,7 +1331,7 @@ public abstract class WSHandler {
      * @return the value found.
      * @throws IllegalArgumentException if <code>key</code> is null.
      */
-    public String getString(String key, Object mc) {
+    public String getString(String key, Map<String, Object> mc) {
         if (key == null) {
             throw new IllegalArgumentException("Key cannot be null");
         }
@@ -1346,7 +1342,7 @@ public abstract class WSHandler {
         if (mc == null) {
             throw new IllegalArgumentException("Message context cannot be 
null");
         }
-        return (String) getProperty(mc, key);
+        return (String) mc.get(key);
     }
 
 
@@ -1379,9 +1375,5 @@ public abstract class WSHandler {
     }
 
     public abstract Object getOption(String key);
-    public abstract Object getProperty(Object msgContext, String key);
-
-    public abstract void setProperty(Object msgContext, String key,
-            Object value);
 
 }
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
index 68b959370..5949753d1 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
@@ -20,6 +20,9 @@
 package org.apache.wss4j.dom.common;
 
 import org.apache.wss4j.dom.action.Action;
+
+import java.util.Map;
+
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.WSHandler;
@@ -39,8 +42,8 @@ public class CustomAction implements Action {
         //
         // leave a breadcrumb, if asked...
         //
-        if (reqData.getMsgContext().equals("bread")) {
-            reqData.setMsgContext("crumb");
+        if (reqData.getMsgContext().containsKey("bread")) {
+            reqData.setMsgContext(Map.of("bread", "crumb"));
         }
     }
 }
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomHandler.java 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomHandler.java
index 8023e203e..e26a3d2cd 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomHandler.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomHandler.java
@@ -49,24 +49,6 @@ public class CustomHandler extends WSHandler {
         optionsMap.put(key, option);
     }
 
-    @SuppressWarnings("unchecked")
-    public void
-    setProperty(
-        Object ctx,
-        String key,
-        Object value
-    ) {
-        ((Map<String, Object>)ctx).put(key, value);
-    }
-
-    public Object
-    getProperty(Object ctx, String key) {
-        if (ctx instanceof Map<?,?>) {
-            return ((Map<?,?>)ctx).get(key);
-        }
-        return null;
-    }
-
     public void send(
         Document doc,
         RequestData reqData,
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
index 5b3b9f094..034479b52 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CallbackRefTest.java
@@ -100,7 +100,7 @@ public class CallbackRefTest {
         reqData.setWssConfig(cfg);
         reqData.setUsername("alice");
         reqData.setPwType(WSConstants.PASSWORD_TEXT);
-        reqData.setMsgContext(new java.util.TreeMap<String, String>());
+        reqData.setMsgContext(new java.util.TreeMap<String, Object>());
 
         final java.util.List<Integer> actions = new java.util.ArrayList<>();
         actions.add(WSConstants.UT);
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
index cfef5e934..c5377d348 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/handler/CustomActionProcessorTest.java
@@ -41,6 +41,7 @@ import org.w3c.dom.Document;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -166,15 +167,15 @@ public class CustomActionProcessorTest {
 
         final Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
         CustomHandler handler = new CustomHandler();
-        reqData.setMsgContext("bread");
-        assertEquals(reqData.getMsgContext(), "bread");
+        reqData.setMsgContext(Map.of("bread", "bread"));
+        assertEquals(reqData.getMsgContext().get("bread"), "bread");
         handler.send(
             doc,
             reqData,
             Collections.singletonList(new HandlerAction(action)),
             true
         );
-        assertEquals(reqData.getMsgContext(), "crumb");
+        assertEquals(reqData.getMsgContext().get("bread"), "crumb");
     }
 
     /**
@@ -193,15 +194,15 @@ public class CustomActionProcessorTest {
 
         final Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
         CustomHandler handler = new CustomHandler();
-        reqData.setMsgContext("bread");
-        assertEquals(reqData.getMsgContext(), "bread");
+        reqData.setMsgContext(Map.of("bread", "bread"));
+        assertEquals(reqData.getMsgContext().get("bread"), "bread");
         handler.send(
             doc,
             reqData,
             Collections.singletonList(new HandlerAction(action)),
             true
         );
-        assertEquals(reqData.getMsgContext(), "crumb");
+        assertEquals(reqData.getMsgContext().get("bread"), "crumb");
     }
 
     /**
@@ -250,15 +251,15 @@ public class CustomActionProcessorTest {
 
         final Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
         CustomHandler handler = new CustomHandler();
-        reqData.setMsgContext("bread");
-        assertEquals(reqData.getMsgContext(), "bread");
+        reqData.setMsgContext(Map.of("bread", "bread"));
+        assertEquals(reqData.getMsgContext().get("bread"), "bread");
         handler.send(
             doc,
             reqData,
             actionList,
             true
         );
-        assertEquals(reqData.getMsgContext(), "crumb");
+        assertEquals(reqData.getMsgContext().get("bread"), "crumb");
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("Message:");
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
index edf622b52..41bd128c6 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureCertTest.java
@@ -242,7 +242,7 @@ public class SignatureCertTest {
         final RequestData reqData = new RequestData();
         reqData.setWssConfig(cfg);
         reqData.setUsername("wss40");
-        java.util.Map<String, String> config = new java.util.TreeMap<>();
+        java.util.Map<String, Object> config = new java.util.TreeMap<>();
         config.put(WSHandlerConstants.SIG_PROP_FILE, "wss40.properties");
         config.put(WSHandlerConstants.PW_CALLBACK_CLASS, 
KeystoreCallbackHandler.class.getName());
         config.put(WSHandlerConstants.SIG_KEY_ID, "DirectReference");
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 3a77de274..b41ee0ca7 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
@@ -591,18 +591,6 @@ public abstract class AbstractTestBase {
             return null;
         }
 
-        @SuppressWarnings("unchecked")
-        @Override
-        public Object getProperty(Object msgContext, String key) {
-            return ((Map<String, Object>) msgContext).get(key);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public void setProperty(Object msgContext, String key, Object value) {
-            ((Map<String, Object>) msgContext).put(key, value);
-        }
-
     }
 
     protected class TestSecurityEventListener implements SecurityEventListener 
{

Reply via email to