This is an automated email from the ASF dual-hosted git repository. coheigea pushed a commit to branch coheigea/wss4j-saml-refactor in repository https://gitbox.apache.org/repos/asf/cxf.git
commit e47c6f66cf1b25052ee1890dff3a07a651960f3f Author: Colm O hEigeartaigh <[email protected]> AuthorDate: Tue Jul 1 15:57:09 2025 +0100 Fixing all cxf-rt-ws-security tests --- .../security/wss4j/AbstractWSS4JInterceptor.java | 22 ++++++++-------------- .../cxf/ws/security/wss4j/WSS4JInInterceptor.java | 5 ----- .../cxf/ws/security/wss4j/WSS4JOutInterceptor.java | 11 ++++++----- 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java index b667288810..86a597c566 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import javax.security.auth.callback.CallbackHandler; import javax.xml.namespace.QName; import org.apache.cxf.binding.soap.SoapMessage; @@ -87,6 +86,10 @@ public abstract class AbstractWSS4JInterceptor extends WSHandler implements Soap this.phase = phase; } + public String getPassword(Object msgContext) { + return (String)((Message)msgContext).getContextualProperty("password"); + } + public Object getOption(String key) { return properties.get(key); } @@ -100,24 +103,15 @@ public abstract class AbstractWSS4JInterceptor extends WSHandler implements Soap return null; } - Object obj = SecurityUtils.getSecurityPropertyValue(key, (Message)msgContext); + Object obj = null; + if (msgContext instanceof Message) { + obj = SecurityUtils.getSecurityPropertyValue(key, (Message)msgContext); + } if (obj == null) { obj = getOption(key); } return obj; } - - @Override - public CallbackHandler getCallbackHandler( - String callbackHandlerClass, - String callbackHandlerRef, - RequestData requestData - ) throws WSSecurityException { - if (callbackHandlerRef != null && properties.containsKey(callbackHandlerRef)) { - return (CallbackHandler)properties.get(callbackHandlerRef); - } - return super.getCallbackHandler(callbackHandlerClass, callbackHandlerRef, requestData); - } @Override protected String getString(String key, Map<String, Object> mc) { diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java index 8c738be7f5..ba06a694f4 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java @@ -185,11 +185,6 @@ public class WSS4JInInterceptor extends AbstractWSS4JInterceptor { public Object getProperty(Object msgContext, String key) { // use the superclass first Object result = super.getProperty(msgContext, key); - if (result == null) { - result = msgContext instanceof SoapMessage - ? ((SoapMessage)msgContext).getContextualProperty(key) - : null; - } // handle the special case of the SEND_SIGV if (result == null diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java index a4e0ade215..84115d1c86 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java @@ -46,6 +46,7 @@ import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.interceptor.Fault; +import org.apache.cxf.message.MessageUtils; import org.apache.cxf.phase.Phase; import org.apache.cxf.phase.PhaseInterceptor; import org.apache.cxf.rt.security.utils.SecurityUtils; @@ -95,11 +96,6 @@ public class WSS4JOutInterceptor extends AbstractWSS4JInterceptor { public Object getProperty(Object msgContext, String key) { // use the superclass first Object result = super.getProperty(msgContext, key); - if (result == null) { - result = msgContext instanceof SoapMessage - ? ((SoapMessage)msgContext).getContextualProperty(key) - : null; - } // handle the special case of the RECV_RESULTS if (result == null @@ -212,6 +208,11 @@ public class WSS4JOutInterceptor extends AbstractWSS4JInterceptor { reqData.setCallbackHandler(getCallback(reqData)); reqData.setAttachmentCallbackHandler(new AttachmentCallbackHandler(mc)); + if (!MessageUtils.isRequestor(mc)) { + Object recvResults = ((SoapMessage)mc).getExchange().getInMessage().get(WSHandlerConstants.RECV_RESULTS); + mc.put(WSHandlerConstants.RECV_RESULTS, recvResults); + } + // Enable XOP Include unless the user has explicitly configured it if (getProperty(mc, ConfigurationConstants.EXPAND_XOP_INCLUDE) == null) { reqData.setExpandXopInclude(AttachmentUtil.isMtomEnabled(mc));
