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 97be721e0 Adding back the getProperty method in WSHandler
97be721e0 is described below

commit 97be721e0ca3ffaf2fe856d5b7bb1c35bd270187
Author: Colm O hEigeartaigh <cohei...@apache.org>
AuthorDate: Tue Jul 1 15:56:55 2025 +0100

    Adding back the getProperty method in WSHandler
---
 .../org/apache/wss4j/dom/handler/WSHandler.java    | 29 ++++++++++++++++------
 .../org/apache/wss4j/dom/common/CustomHandler.java | 24 ++++++++++++++++++
 .../wss4j/common/saml/dom/CustomHandler.java       | 24 ++++++++++++++++++
 .../apache/wss4j/stax/test/AbstractTestBase.java   | 19 ++++++++++++++
 4 files changed, 89 insertions(+), 7 deletions(-)

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 ab4d3db73..762818dd0 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
@@ -264,7 +264,9 @@ public abstract class WSHandler {
                 
(Set<Integer>)reqData.getMsgContext().get(WSHandlerConstants.SEND_SIGV);
             if (savedSignatures == null) {
                 savedSignatures = new HashSet<>();
-                reqData.getMsgContext().put(WSHandlerConstants.SEND_SIGV, 
savedSignatures);
+                setProperty(
+                    reqData.getMsgContext(), WSHandlerConstants.SEND_SIGV, 
savedSignatures
+                );
             }
             for (byte[] signatureValue : reqData.getSignatureValues()) {
                 savedSignatures.add(Arrays.hashCode(signatureValue));
@@ -460,7 +462,7 @@ public abstract class WSHandler {
         // First get all Signature values stored during sending the request
         //
         Set<Integer> savedSignatures =
-            (Set<Integer>) 
reqData.getMsgContext().get(WSHandlerConstants.SEND_SIGV);
+            (Set<Integer>) getProperty(reqData.getMsgContext(), 
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
@@ -760,7 +762,7 @@ public abstract class WSHandler {
                 getString(WSHandlerConstants.ENC_KEY_DERIVATION_FUNCTION, mc);
         actionToken.setKeyDerivationFunction(encKeyDerivationAlgorithm);
 
-        Object obj = mc.get(WSHandlerConstants.ENC_KEY_DERIVATION_PARAMS);
+        Object obj = getProperty(mc, 
WSHandlerConstants.ENC_KEY_DERIVATION_PARAMS);
         if (obj instanceof KeyDerivationParameters) {
             
actionToken.setKeyDerivationParameters((KeyDerivationParameters)obj);
         }
@@ -1006,7 +1008,7 @@ public abstract class WSHandler {
         if (refId != null) {
             crypto = cryptos.get(refId);
             if (crypto == null) {
-                Object obj = mc.get(refId);
+                Object obj = getProperty(mc, refId);
                 if (obj instanceof Properties) {
                     crypto = CryptoFactory.getInstance((Properties)obj,
                                                        
Loader.getClassLoader(CryptoFactory.class),
@@ -1084,6 +1086,9 @@ public abstract class WSHandler {
     ) throws WSSecurityException {
         Map<String, Object> mc = requestData.getMsgContext();
         CallbackHandler cbHandler = (CallbackHandler) 
mc.get(callbackHandlerRef);
+        if (cbHandler == null) {
+            cbHandler = (CallbackHandler) getProperty(mc, callbackHandlerRef);
+        }
         
         if (cbHandler == null) {
             String callback = getString(callbackHandlerClass, mc);
@@ -1151,7 +1156,7 @@ public abstract class WSHandler {
         PasswordEncryptor passwordEncryptor = 
requestData.getPasswordEncryptor();
         if (passwordEncryptor == null) {
             Map<String, Object> mc = requestData.getMsgContext();
-            Object o = mc.get(WSHandlerConstants.PASSWORD_ENCRYPTOR_INSTANCE);
+            Object o = getProperty(mc, 
WSHandlerConstants.PASSWORD_ENCRYPTOR_INSTANCE);
             if (o instanceof PasswordEncryptor) {
                 passwordEncryptor = (PasswordEncryptor) o;
             }
@@ -1226,7 +1231,9 @@ public abstract class WSHandler {
             return;
         }
         List<WSHandlerResult> results =
-            (List<WSHandlerResult>) 
reqData.getMsgContext().get(WSHandlerConstants.RECV_RESULTS);
+            (List<WSHandlerResult>) getProperty(
+                reqData.getMsgContext(), WSHandlerConstants.RECV_RESULTS
+            );
         if (results == null) {
             return;
         }
@@ -1365,7 +1372,7 @@ public abstract class WSHandler {
         if (mc == null) {
             throw new IllegalArgumentException("Message context cannot be 
null");
         }
-        return (String) mc.get(key);
+        return (String) getProperty(mc, key);
     }
 
     /**
@@ -1380,4 +1387,12 @@ public abstract class WSHandler {
         }
     }
 
+    public abstract Object getProperty(Object msgContext, String key);
+
+    public abstract void setProperty(Object msgContext, String key,
+            Object value);
+
+
+    public abstract String getPassword(Object msgContext);
+
 }
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 a0501428a..1c028c6d9 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
@@ -28,6 +28,7 @@ import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.w3c.dom.Document;
 
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -80,5 +81,28 @@ public class CustomHandler extends WSHandler {
         return checkReceiverResultsAnyOrder(results, actions);
     }
 
+    @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 String getPassword(Object msgContext) {
+        if (msgContext instanceof Map<?,?>) {
+            return (String)((Map<?,?>)msgContext).get("password");
+        }
+        return null;
+    }
+
 
 }
diff --git 
a/ws-security-saml/src/test/java/org/apache/wss4j/common/saml/dom/CustomHandler.java
 
b/ws-security-saml/src/test/java/org/apache/wss4j/common/saml/dom/CustomHandler.java
index 25b3d00e9..c06040bdf 100644
--- 
a/ws-security-saml/src/test/java/org/apache/wss4j/common/saml/dom/CustomHandler.java
+++ 
b/ws-security-saml/src/test/java/org/apache/wss4j/common/saml/dom/CustomHandler.java
@@ -28,6 +28,7 @@ import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.w3c.dom.Document;
 
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -80,5 +81,28 @@ public class CustomHandler extends WSHandler {
         return checkReceiverResultsAnyOrder(results, actions);
     }
 
+    @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 String getPassword(Object msgContext) {
+        if (msgContext instanceof Map<?,?>) {
+            return (String)((Map<?,?>)msgContext).get("password");
+        }
+        return null;
+    }
+
 
 }
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 db5483c76..0347fb614 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
@@ -586,6 +586,25 @@ public abstract class AbstractTestBase {
             return true;
         }
 
+        @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);
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public String getPassword(Object msgContext) {
+            return (String) ((Map<String, Object>) msgContext).get("password");
+        }
+
+
     }
 
     protected class TestSecurityEventListener implements SecurityEventListener 
{

Reply via email to