Skip to content

Commit

Permalink
fixed walrus soap handling that I borked
Browse files Browse the repository at this point in the history
  • Loading branch information
Neil committed Aug 15, 2009
1 parent 0708eb3 commit 37cd739
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
@@ -1,16 +1,22 @@
package com.eucalyptus.ws.handlers; package com.eucalyptus.ws.handlers;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;


import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;

import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPFault; import org.apache.axiom.soap.SOAPFault;
import org.apache.axiom.soap.SOAPHeader; import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPHeaderBlock; import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
Expand All @@ -21,6 +27,7 @@


import com.eucalyptus.ws.EucalyptusRemoteFault; import com.eucalyptus.ws.EucalyptusRemoteFault;
import com.eucalyptus.ws.MappingHttpMessage; import com.eucalyptus.ws.MappingHttpMessage;
import com.eucalyptus.ws.MappingHttpRequest;
import com.eucalyptus.ws.binding.Binding; import com.eucalyptus.ws.binding.Binding;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;


Expand All @@ -35,7 +42,13 @@ public class WalrusSoapHandler extends MessageStackHandler {
public void incomingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception { public void incomingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception {
if ( event.getMessage( ) instanceof MappingHttpMessage ) { if ( event.getMessage( ) instanceof MappingHttpMessage ) {
final MappingHttpMessage message = ( MappingHttpMessage ) event.getMessage( ); final MappingHttpMessage message = ( MappingHttpMessage ) event.getMessage( );
final SOAPEnvelope env = message.getSoapEnvelope( ); String content = message.getContent( ).toString( "UTF-8" );
ByteArrayInputStream byteIn = new ByteArrayInputStream( content.getBytes( ) );
XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance( ).createXMLStreamReader( byteIn );
StAXSOAPModelBuilder soapBuilder = new StAXSOAPModelBuilder( xmlStreamReader, SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI );
SOAPEnvelope env = ( SOAPEnvelope ) soapBuilder.getDocumentElement( );
message.setSoapEnvelope( env );
message.setMessageString( content );
if ( !env.hasFault( ) ) { if ( !env.hasFault( ) ) {
message.setOmMessage( env.getBody( ).getFirstElement( ) ); message.setOmMessage( env.getBody( ).getFirstElement( ) );
} else { } else {
Expand Down
Expand Up @@ -40,11 +40,7 @@ public class WalrusSoapUserAuthenticationHandler extends MessageStackHandler {
public void incomingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception { public void incomingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception {
if ( event.getMessage( ) instanceof MappingHttpRequest ) { if ( event.getMessage( ) instanceof MappingHttpRequest ) {
MappingHttpRequest httpRequest = ( MappingHttpRequest ) event.getMessage( ); MappingHttpRequest httpRequest = ( MappingHttpRequest ) event.getMessage( );
String content = httpRequest.getContent( ).toString( "UTF-8" ); SOAPEnvelope envelope = httpRequest.getSoapEnvelope();
ByteArrayInputStream byteIn = new ByteArrayInputStream( content.getBytes( ) );
XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance( ).createXMLStreamReader( byteIn );
StAXSOAPModelBuilder soapBuilder = new StAXSOAPModelBuilder( xmlStreamReader, SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI );
SOAPEnvelope envelope = ( SOAPEnvelope ) soapBuilder.getDocumentElement( );
SOAPBody body = envelope.getBody(); SOAPBody body = envelope.getBody();
final StAXOMBuilder doomBuilder = new StAXOMBuilder( DOOMAbstractFactory.getOMFactory( ), body.getXMLStreamReader( ) ); final StAXOMBuilder doomBuilder = new StAXOMBuilder( DOOMAbstractFactory.getOMFactory( ), body.getXMLStreamReader( ) );
final OMElement elem = doomBuilder.getDocumentElement( ); final OMElement elem = doomBuilder.getDocumentElement( );
Expand Down

0 comments on commit 37cd739

Please sign in to comment.