PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Web Services » SOAP » Bug #9538

Soap Client with MIME does not send MIME boundary on HTTPS

Details

Submitted2006-12-04 20:34 UTC
Fromjustin_burger at adp dot com
Assignedyunosh
StatusClosed
PackageSOAP
PHP Version5.1.0
OSLinux (Cent OS)
Roadmaps(Not assigned)

Comments

[2006-12-04 20:34 UTC] justin_burger at adp dot com

Description:
------------
SOAP Version: SOAP-0.9.1

My Config:
'./configure' '--prefix=/usr/local/Zend/Core' '--with-config-file-path=/etc' '--enable-force-cgi-redirect' '--enable-fastcgi' '--disable-debug' '--enable-inline-optimization' '--enable-memory-limit' '--disable-all' '--enable-ctype' '--enable-dom' '--enable-libxml' '--with-libxml-dir=/usr/local/Zend/Core' '--with-openssl=/usr/local/Zend/Core' '--with-pcre-regex' '--enable-session' '--enable-simplexml' '--enable-spl' '--enable-wddx' '--enable-xml' '--with-zlib=/usr/local/Zend/Core' '--with-pear' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-layout=GNU'

Test script:
---------------
Sending any MIME attachment does not send the boundary header when sending on SSL. Use a test script sending to an HTTP SOAP Server, and test the same script over HTTPS.
require_once("SOAP/Client.php");
require_once("SOAP/Value.php");

$filename = "test.pdf";
$v = new SOAP_Attachment('render','text/plain',$filename);

$methodValue = new SOAP_Value('render', 'render', array($v));
$av=array($v);

$client = new SOAP_Client('http://localhost:8080/axis/fopRender.jws');

$resp = $client->call('render',$av,
array('Attachments'=>'Mime',
'namespace'=>'http://soapinterop.org/'));
echo "<pre>";
print_r($resp);
echo "</pre>";

Expected result:
----------------
The HTTP request send should include a boundary header which defines the start/end of the attachment, But when sending over HTTPS the boundary is not included.

Actual result:
--------------
HTTP Request is identical, other than the lack of a boundary header that defines the boundary of the attached file.

[2007-01-20 00:22 UTC] justin_burger at adp dot com

The boundary defines the start and end of the attachment.

If you use nuSOAP (or any other implementation) you will get header information that looks something like this:
POST /dcwebservice/services/digitalcontract HTTP/1.1

User-Agent: PEAR-SOAP 0.8.0RC4-devel

Host: localhost

Content-Type: multipart/related; type=text/xml; boundary="=_758b014fcc0653bc3052a7248fe7b1c5"

Content-Length: 2451

SOAPAction: "digitalcontract"

Via: 1.0 DCFireWallToQA

Connection: Keep-Alive

X-Client-IP: 139.126.21.111

[End of Snip]
These headers are almost identical when using SSL (https) the only missing piece of information is the boundary. It is used to define the start and end of the attachment.

the pear version (pear it's self is 0.9.1)

it looks like the version of the package is: PEAR-SOAP 0.8.0RC4-devel

I have also re-downloaded PEAR-SOAP with the most current version and get the same result.