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 655cbccc99fb6f2e3f96d880fc74f234064c8b1f
Author: Colm O hEigeartaigh <cohei...@apache.org>
AuthorDate: Thu Jun 19 09:50:11 2025 +0100

    Completed removing WSHandler from actions
---
 .../src/main/java/org/apache/wss4j/dom/action/Action.java  |  2 --
 .../org/apache/wss4j/dom/action/CustomTokenAction.java     |  3 +--
 .../java/org/apache/wss4j/dom/action/EncryptionAction.java |  3 +--
 .../apache/wss4j/dom/action/EncryptionDerivedAction.java   |  3 +--
 .../org/apache/wss4j/dom/action/SAMLTokenSignedAction.java |  3 +--
 .../apache/wss4j/dom/action/SAMLTokenUnsignedAction.java   | 11 ++---------
 .../java/org/apache/wss4j/dom/action/SignatureAction.java  |  3 +--
 .../wss4j/dom/action/SignatureConfirmationAction.java      |  3 +--
 .../apache/wss4j/dom/action/SignatureDerivedAction.java    |  3 +--
 .../java/org/apache/wss4j/dom/action/TimestampAction.java  |  3 +--
 .../org/apache/wss4j/dom/action/UsernameTokenAction.java   |  3 +--
 .../apache/wss4j/dom/action/UsernameTokenSignedAction.java |  3 +--
 .../main/java/org/apache/wss4j/dom/handler/WSHandler.java  | 14 ++++++++++++--
 .../java/org/apache/wss4j/dom/common/CustomAction.java     |  2 --
 14 files changed, 24 insertions(+), 35 deletions(-)

diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
index 605129d6c..488c0cce8 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
@@ -22,7 +22,6 @@ package org.apache.wss4j.dom.action;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 
 /**
  * Interface for all actions
@@ -30,7 +29,6 @@ import org.apache.wss4j.dom.handler.WSHandler;
 public interface Action {
 
     void execute(
-        WSHandler handler,
         SecurityActionToken actionToken,
         RequestData reqData
     ) throws WSSecurityException;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
index e99539b53..0551d9079 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
@@ -23,7 +23,6 @@ import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.w3c.dom.Element;
 
 import javax.security.auth.callback.Callback;
@@ -31,7 +30,7 @@ import javax.security.auth.callback.CallbackHandler;
 
 public class CustomTokenAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
         if (callbackHandler == null) {
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 0c09795c2..8179dde15 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
@@ -34,12 +34,11 @@ import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
 
 public class EncryptionAction implements Action {
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         WSSecEncrypt wsEncrypt = new WSSecEncrypt(reqData.getSecHeader());
         wsEncrypt.setIdAllocator(reqData.getWssConfig().getIdAllocator());
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
index 4e7bfa160..4ce59bd7c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
@@ -36,7 +36,6 @@ import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecDKEncrypt;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
@@ -45,7 +44,7 @@ import org.w3c.dom.Node;
 
 public class EncryptionDerivedAction extends AbstractDerivedAction implements 
Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
index 2845d9c91..379ba538c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
@@ -30,12 +30,11 @@ import org.apache.wss4j.common.saml.SAMLCallback;
 import org.apache.wss4j.common.saml.SAMLUtil;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.saml.WSSecSignatureSAML;
 
 public class SAMLTokenSignedAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
 
         CallbackHandler samlCallbackHandler = reqData.getSamlCallbackHandler();
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
index a40a4c340..9c26d4743 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
@@ -21,31 +21,24 @@ package org.apache.wss4j.dom.action;
 
 import javax.security.auth.callback.CallbackHandler;
 
-import org.apache.wss4j.common.ConfigurationConstants;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.SAMLCallback;
 import org.apache.wss4j.common.saml.SAMLUtil;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
 
 public class SAMLTokenUnsignedAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         WSSecSAMLToken builder = new WSSecSAMLToken(reqData.getSecHeader());
         builder.setIdAllocator(reqData.getWssConfig().getIdAllocator());
         builder.setWsDocInfo(reqData.getWsDocInfo());
         builder.setExpandXopInclude(reqData.isExpandXopInclude());
 
-        CallbackHandler samlCallbackHandler =
-                handler.getCallbackHandler(
-                    ConfigurationConstants.SAML_CALLBACK_CLASS,
-                    ConfigurationConstants.SAML_CALLBACK_REF,
-                    reqData
-                );
+        CallbackHandler samlCallbackHandler = reqData.getSamlCallbackHandler();
         if (samlCallbackHandler == null) {
             throw new WSSecurityException(
                 WSSecurityException.ErrorCode.FAILURE,
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
index aab7506c5..5bffc2fc2 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
@@ -31,7 +31,6 @@ import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
@@ -40,7 +39,7 @@ import org.w3c.dom.Node;
 
 public class SignatureAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
 
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 66fd8e011..2647f7c9b 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
@@ -26,7 +26,6 @@ import org.apache.wss4j.common.SignatureActionToken;
 import org.apache.wss4j.common.WSEncryptionPart;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.dom.message.WSSecSignatureConfirmation;
@@ -38,7 +37,7 @@ public class SignatureConfirmationAction implements Action {
         org.slf4j.LoggerFactory.getLogger(SignatureConfirmationAction.class);
 
     @SuppressWarnings("unchecked")
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         LOG.debug("Perform Signature confirmation");
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
index c170b34f9..e905ec65a 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
@@ -37,7 +37,6 @@ import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecDKSign;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.w3c.dom.Document;
@@ -46,7 +45,7 @@ import org.w3c.dom.Node;
 
 public class SignatureDerivedAction extends AbstractDerivedAction implements 
Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
index da9321657..338fef35b 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
@@ -22,12 +22,11 @@ package org.apache.wss4j.dom.action;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
 
 public class TimestampAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
         throws WSSecurityException {
         //
         // add the Timestamp to the SOAP Envelope
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
index 39450d709..934e4c92c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
@@ -26,12 +26,11 @@ import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
 
 public class UsernameTokenAction implements Action {
 
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
         throws WSSecurityException {
         String username = reqData.getUsername();
         String password = null;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
index 138a58d10..0f4ae3367 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
@@ -33,7 +33,6 @@ import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.UsernameTokenUtil;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
@@ -47,7 +46,7 @@ import org.w3c.dom.Document;
  */
 
 public class UsernameTokenSignedAction implements Action {
-    public void execute(WSHandler handler, SecurityActionToken actionToken, 
RequestData reqData)
+    public void execute(SecurityActionToken actionToken, RequestData reqData)
             throws WSSecurityException {
         CallbackHandler callbackHandler = reqData.getCallbackHandler();
  
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 9c441785b..c81f5d6b6 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
@@ -157,6 +157,16 @@ public abstract class WSHandler {
                 }
             } else if (actionToDo.getAction() == WSConstants.ST_SIGNED) {
                 configureSTSignedAction(reqData, actionToDo);
+            } else if (actionToDo.getAction() == WSConstants.ST_UNSIGNED) {
+                if (reqData.getSamlCallbackHandler() == null) {
+                    CallbackHandler samlCallbackHandler =
+                        getCallbackHandler(
+                            WSHandlerConstants.SAML_CALLBACK_CLASS,
+                            WSHandlerConstants.SAML_CALLBACK_REF,
+                            reqData
+                        );
+                    reqData.setSamlCallbackHandler(samlCallbackHandler);
+                }
             } else if ((actionToDo.getAction() == WSConstants.ENCR
                 || actionToDo.getAction() == WSConstants.DKT_ENCR)
                 && actionToDo.getActionToken() == null) {
@@ -197,7 +207,7 @@ public abstract class WSHandler {
             String done =
                 
(String)reqData.getMsgContext().get(WSHandlerConstants.SIG_CONF_DONE);
             if (done == null) {
-                wssConfig.getAction(WSConstants.SC).execute(this, null, 
reqData);
+                wssConfig.getAction(WSConstants.SC).execute(null, reqData);
             }
         }
 
@@ -237,7 +247,7 @@ public abstract class WSHandler {
 
             if (WSConstants.NO_SECURITY != actionToDo.getAction()) {
                 wssConfig.getAction(actionToDo.getAction()).execute(
-                    this, actionToDo.getActionToken(), reqData);
+                    actionToDo.getActionToken(), reqData);
             }
         }
 
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 5949753d1..fac9d212a 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
@@ -25,7 +25,6 @@ import java.util.Map;
 
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
-import org.apache.wss4j.dom.handler.WSHandler;
 import org.apache.wss4j.dom.handler.RequestData;
 
 /**
@@ -35,7 +34,6 @@ public class CustomAction implements Action {
 
     public void
     execute(
-        WSHandler handler,
         SecurityActionToken action,
         RequestData reqData
     ) throws WSSecurityException {

Reply via email to