Author: bmaxwell
Date: 2010-12-16 15:04:23 -0500 (Thu, 16 Dec 2010)
New Revision: 13515
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/ant-import-tests/build-jars-jaxws.xml
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/CommonClient.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxrpc/client/CallImpl.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerDelegateJAXWS.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/NodeImpl.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/SOAPFactoryImpl.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/extensions/xop/XOPContext.java
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-client-config.xml
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-endpoint-config.xml
Log:
[JBPAPP-5597] MTOM + WS-Security not working
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/ant-import-tests/build-jars-jaxws.xml
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/ant-import-tests/build-jars-jaxws.xml 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/ant-import-tests/build-jars-jaxws.xml 2010-12-16
20:04:23 UTC (rev 13515)
@@ -393,7 +393,33 @@
<include name="org/jboss/test/ws/jaxws/jbws1283/*.*" />
</fileset>
</jar>
-
+
+ <!-- jaxws-jbws2014-->
+ <jar destfile="${tests.output.dir}/libs/jaxws-jbws2014-sign.jar">
+ <fileset dir="${tests.output.dir}/classes">
+ <include name="org/jboss/test/ws/jaxws/jbws2014/*.class"/>
+ <exclude
name="org/jboss/test/ws/jaxws/jbws2014/*TestCase.class"/>
+ </fileset>
+ <metainf
dir="${tests.output.dir}/resources/jaxws/jbws2014/sign/META-INF">
+ <include name="jboss-wsse-server.xml"/>
+ </metainf>
+ <metainf dir="${tests.output.dir}/resources/jaxws/jbws2014/">
+ <include name="wsse.*"/>
+ </metainf>
+ </jar>
+ <jar destfile="${tests.output.dir}/libs/jaxws-jbws2014-encrypt.jar">
+ <fileset dir="${tests.output.dir}/classes">
+ <include name="org/jboss/test/ws/jaxws/jbws2014/*.class"/>
+ <exclude
name="org/jboss/test/ws/jaxws/jbws2014/*TestCase.class"/>
+ </fileset>
+ <metainf
dir="${tests.output.dir}/resources/jaxws/jbws2014/encrypt/META-INF">
+ <include name="jboss-wsse-server.xml"/>
+ </metainf>
+ <metainf dir="${tests.output.dir}/resources/jaxws/jbws2014/">
+ <include name="wsse.*"/>
+ </metainf>
+ </jar>
+
<!-- jaxws-jbws1422 -->
<jar destfile="${tests.output.dir}/libs/jaxws-jbws1422.jar">
<fileset dir="${tests.output.dir}/classes">
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/CommonClient.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/CommonClient.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/CommonClient.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -54,6 +54,7 @@
import org.jboss.ws.core.soap.UnboundHeader;
import org.jboss.ws.core.utils.HolderUtils;
import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
+import org.jboss.ws.extensions.xop.XOPContext;
import org.jboss.ws.metadata.umdm.ClientEndpointMetaData;
import org.jboss.ws.metadata.umdm.EndpointMetaData;
import org.jboss.ws.metadata.umdm.OperationMetaData;
@@ -298,6 +299,8 @@
boolean handlerPass = callRequestHandlerChain(portName, handlerType[0]);
handlerPass = handlerPass && callRequestHandlerChain(portName,
handlerType[1]);
handlerPass = handlerPass && callRequestHandlerChain(portName,
handlerType[2]);
+
+ XOPContext.visitAndRestoreXOPData();
// Handlers might have replaced the message
reqMessage = msgContext.getMessageAbstraction();
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxrpc/client/CallImpl.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxrpc/client/CallImpl.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxrpc/client/CallImpl.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -560,12 +560,7 @@
{
SOAPMessageContextJAXRPC msgContext =
(SOAPMessageContextJAXRPC)MessageContextAssociation.peekMessageContext();
HandlerChainBaseImpl handlerChain =
(HandlerChainBaseImpl)jaxrpcService.getHandlerChain(portName);
- boolean status = (handlerChain != null ? handlerChain.handleRequest(msgContext,
type) : true);
-
- if (type == HandlerType.ENDPOINT)
- XOPContext.visitAndRestoreXOPData();
-
- return status;
+ return (handlerChain != null ? handlerChain.handleRequest(msgContext, type) :
true);
}
@Override
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -70,6 +70,7 @@
import org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS;
import org.jboss.ws.core.soap.MessageContextAssociation;
import org.jboss.ws.core.soap.SOAPMessageImpl;
+import org.jboss.ws.extensions.xop.XOPContext;
import org.jboss.ws.metadata.config.ConfigurationProvider;
import org.jboss.ws.metadata.umdm.ClientEndpointMetaData;
import org.jboss.ws.metadata.umdm.EndpointConfigMetaData;
@@ -226,6 +227,8 @@
handlerPass = handlerPass && callRequestHandlerChain(portName,
handlerType[1]);
handlerPass = handlerPass && callRequestHandlerChain(portName,
handlerType[2]);
+ XOPContext.visitAndRestoreXOPData();
+
// Handlers might have replaced the message
reqMsg = (SOAPMessageImpl)msgContext.getSOAPMessage();
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerDelegateJAXWS.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerDelegateJAXWS.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerDelegateJAXWS.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -28,13 +28,17 @@
import java.util.Set;
import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.Handler;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.PortInfo;
import org.jboss.logging.Logger;
+import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.ws.core.MessageAbstraction;
import org.jboss.ws.core.server.ServerHandlerDelegate;
import org.jboss.ws.core.soap.MessageContextAssociation;
+import org.jboss.ws.extensions.xop.XOPContext;
import org.jboss.ws.metadata.umdm.EndpointConfigMetaData;
import org.jboss.ws.metadata.umdm.EndpointMetaData;
import org.jboss.ws.metadata.umdm.ServerEndpointMetaData;
@@ -100,7 +104,13 @@
log.debug("callResponseHandlerChain: " + type);
HandlerChainExecutor executor = getExecutor(type);
MessageContext msgContext =
(MessageContext)MessageContextAssociation.peekMessageContext();
- return (executor != null ? executor.handleMessage(msgContext) : true);
+ boolean status = (executor != null ? executor.handleMessage(msgContext) : true);
+
+ MessageAbstraction msg =
((CommonMessageContext)msgContext).getMessageAbstraction();
+ if (msg instanceof SOAPMessage)
+ XOPContext.visitAndRestoreXOPData();
+
+ return status;
}
public void closeHandlerChain(ServerEndpointMetaData sepMetaData, HandlerType type)
@@ -120,7 +130,13 @@
log.debug("callFaultHandlerChain: " + type);
HandlerChainExecutor executor = getExecutor(type);
MessageContext msgContext =
(MessageContext)MessageContextAssociation.peekMessageContext();
- return (executor != null ? executor.handleFault(msgContext, ex) : true);
+ boolean status = (executor != null ? executor.handleFault(msgContext, ex) : true);
+
+ MessageAbstraction msg =
((CommonMessageContext)msgContext).getMessageAbstraction();
+ if (msg instanceof SOAPMessage)
+ XOPContext.visitAndRestoreXOPData();
+
+ return status;
}
private List<Handler> getHandlerChain(EndpointMetaData epMetaData, HandlerType
type)
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/NodeImpl.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/NodeImpl.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/NodeImpl.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -22,8 +22,10 @@
package org.jboss.ws.core.soap;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
@@ -66,6 +68,8 @@
protected org.w3c.dom.Node domNode;
// A list of soap children
private List<NodeImpl> soapChildren = new ArrayList<NodeImpl>();
+ // A hash with the user data
+ private Map<String, Object> userData;
/** Construct the Node for a given org.w3c.dom.Node
*
@@ -612,8 +616,11 @@
public Object getUserData(String key)
{
- // FIXME getUserData
- throw new NotImplementedException("getUserData");
+ if (userData != null)
+ {
+ return userData.get(key);
+ }
+ return null;
}
public boolean isDefaultNamespace(String namespaceURI)
@@ -662,8 +669,11 @@
public Object setUserData(String key, Object data, UserDataHandler handler)
{
- // FIXME setUserData
- throw new NotImplementedException("setUserData");
+ if (userData == null)
+ {
+ userData = new HashMap<String, Object>();
+ }
+ return userData.put(key, data);
}
// END org.w3c.dom.Node DOM Level 3
*****************************************************************************
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/SOAPFactoryImpl.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/SOAPFactoryImpl.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/core/soap/SOAPFactoryImpl.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -33,6 +33,8 @@
import javax.xml.soap.SOAPFault;
import org.jboss.logging.Logger;
+import org.jboss.ws.Constants;
+import org.jboss.ws.extensions.xop.XOPContext;
import org.jboss.wsf.common.DOMUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -136,6 +138,8 @@
{
SOAPElement soapChild = createElement((Element)child);
soapElement.addChildElement(soapChild);
+ if (Constants.NAME_XOP_INCLUDE.equals(soapChild.getElementQName()))
+ XOPContext.inlineXOPData(soapChild);
}
else if (nodeType == Node.TEXT_NODE)
{
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/extensions/xop/XOPContext.java
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/extensions/xop/XOPContext.java 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/java/org/jboss/ws/extensions/xop/XOPContext.java 2010-12-16
20:04:23 UTC (rev 13515)
@@ -72,6 +72,8 @@
private static final Logger log = Logger.getLogger(XOPContext.class);
private static final String NS_XOP_JBOSSWS = "http://org.jboss.ws/xop";
+
+ private static final String NS_XOP_JBOSSWS_CONTENT_TYPE = NS_XOP_JBOSSWS +
":content-type";
/**
* Check if the current soap message flagged as a XOP package.
@@ -258,11 +260,11 @@
*/
public static void restoreXOPDataDOM(SOAPElement xopElement)
{
- String contentType = xopElement.getAttributeNS(NS_XOP_JBOSSWS,
"content-type");
+ String contentType = (String)xopElement.getUserData(NS_XOP_JBOSSWS_CONTENT_TYPE);
if (contentType != null && contentType.length() > 0)
{
replaceBase64Representation(xopElement, contentType);
- xopElement.removeAttribute(new NameImpl(new QName(NS_XOP_JBOSSWS,
"content-type")));
+ xopElement.setUserData(NS_XOP_JBOSSWS_CONTENT_TYPE, null, null);
}
else
{
@@ -345,7 +347,7 @@
String base64 = SimpleTypeBindings.marshalBase64(data);
parent.removeChild(xopIncludeElement);
parent.setValue(base64);
- parent.setAttributeNS(NS_XOP_JBOSSWS, "content-type", contentType);
+ parent.setUserData(NS_XOP_JBOSSWS_CONTENT_TYPE, contentType, null);
if (log.isDebugEnabled())
log.debug("Created base64 representation for content-type " +
contentType);
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-client-config.xml
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-client-config.xml 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-client-config.xml 2010-12-16
20:04:23 UTC (rev 13515)
@@ -36,7 +36,7 @@
<config-name>Standard WSSecurity Client</config-name>
<post-handler-chains>
<javaee:handler-chain>
- <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
+ <javaee:protocol-bindings>##SOAP11_HTTP
##SOAP11_HTTP_MTOM</javaee:protocol-bindings>
<javaee:handler>
<javaee:handler-name>WSSecurityHandlerOutbound</javaee:handler-name>
<javaee:handler-class>org.jboss.ws.extensions.security.jaxws.WSSecurityHandlerClient</javaee:handler-class>
Modified:
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-endpoint-config.xml
===================================================================
---
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-endpoint-config.xml 2010-12-16
19:45:50 UTC (rev 13514)
+++
stack/native/branches/jbossws-native-2.0.1.SP2_CP/src/main/resources/standard-config/standard-jaxws-endpoint-config.xml 2010-12-16
20:04:23 UTC (rev 13515)
@@ -35,7 +35,7 @@
<config-name>Standard WSSecurity Endpoint</config-name>
<post-handler-chains>
<javaee:handler-chain>
- <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
+ <javaee:protocol-bindings>##SOAP11_HTTP
##SOAP11_HTTP_MTOM</javaee:protocol-bindings>
<javaee:handler>
<javaee:handler-name>WSSecurity Handler</javaee:handler-name>
<javaee:handler-class>org.jboss.ws.extensions.security.jaxws.WSSecurityHandlerServer</javaee:handler-class>