Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1124

SOAP action not parsed correctly when it is contained in the content type from a MTOM message

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3.0
    • None
    • core/transport, mtom
    • None

    Description

      I'm using soapui to communicate with WSO2 WSF PHP which uses axis2c (ChangeLog indicates version 1.3.1) as the engine and communication works fine when not using MTOM but as soon as I attempt to send a multi-part message, the operation is no longer found. I traced it down to a problem in axis2c that is returning the string: \"OperationName\" instead of: OperationName. I found that in the core/transport/http/util/http_transport_utils.c file, there is a method named axis2_http_transport_utils_get_value_from_content_type which is looking for values that start with a double quote to strip that off, but it isn't looking for an escaped double quote to strip the escaped double quote off.

      As you can see from the sample message below, the action is included in the content-type and is escaped with a backslash before the double quote. I'm by no means an expert, but I believe from looking at the examples on ws3's XOP specification that soapui is doing the correct behavior.

      Example content-type from w3's XOP TR:
      Content-Type: application/xop+xml;
      charset=UTF-8;
      type="application/soap+xml; action=\"ProcessData\""

      Sample message:
      POST /services/order/order_service.php HTTP/1.1[\r][\n]
      Content-Type: multipart/related; type="application/xop+xml"; start="<rootpart@soapui.org>"; start-info="application/soap+xml; action=\"NewOrder\""; boundary="----=_Part_17_13936350.1209567095547"[\r][\n]
      MIME-Version: 1.0[\r][\n]
      User-Agent: Jakarta Commons-HttpClient/3.0.1[\r][\n]
      Host: localhost[\r][\n]
      Content-Length: 3371[\r][\n]
      [\r][\n]
      [\r][\n]
      ------=_Part_17_13936350.1209567095547[\r][\n]
      Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml; action=\"NewOrder\""[\r][\n]
      Content-Transfer-Encoding: 8bit[\r][\n]
      Content-ID: <rootpart@soapui.org>[\r][\n]
      [\r][\n]
      <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:urn="urn:fineline:order:service:1.0" xmlns:urn1="urn:fineline:order:types:1.0">[\n]
      <soap:Header/>[\n]
      <soap:Body>[\n]
      ...
      </soap:Body>[\n]
      </soap:Envelope>[\r][\n]
      ------=_Part_17_13936350.1209567095547[\r][\n]
      Content-Type: application/octet-stream[\r][\n]
      Content-Transfer-Encoding: binary[\r][\n]
      Content-ID: <123334421>[\r][\n]
      [\r][\n]
      <binary encoded data>

      Attachments

        1. http_transport_utils.c.patch
          0.9 kB
          Rajika Kumarasiri
        2. http_transport_utils.c_v2.patch
          0.9 kB
          Rajika Kumarasiri

        Activity

          People

            supun Supun Kamburugamuva
            tommy.odom Tommy Odom
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: