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 {