#38703 [Opn->Asn]: SOAP Basic Authentication Failure Error Messages
ID: 38703
Updated by: tony2001@php.net
Reported By: chris at reeltwo dot com
-Status: Open
+Status: Assigned
Bug Type: SOAP related
Operating System: Windows XP
PHP Version: 5.1.6
Assigned To: dmitry
New Comment:
Dmitry, so what's the status of this report?
"Won't fix"?
Previous Comments:
------------------------------------------------------------------------
[2006-09-06 20:54:45] chris at reeltwo dot com
Thanks, I've used the set_error_handler() workaround.
------------------------------------------------------------------------
[2006-09-05 12:43:23] dmitry@php.net
ext/soap reuses libxml and php streams API code to load WSDL files. I
don't like rewrite streams code in ext/soap, but this code is not able
throw exceptopns.
As a workarounf I suggest tricks with set_error_handler().
------------------------------------------------------------------------
[2006-09-04 23:52:22] chris at reeltwo dot com
The problem still occurs using the latest snapshot.
------------------------------------------------------------------------
[2006-09-04 08:34:21] tony2001@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2006-09-03 22:18:53] chris at reeltwo dot com
Description:
------------
When an incorrect user name or password is passed to a SoapClient in
WSDL mode, the resulting SoapFault exception which is thrown contains
the generic faultstring of "SOAP-ERROR: Parsing WSDL: Couldn't load
from..." and faultcode of "WSDL". A warning is given with "HTTP request
failed! HTTP/1.1 401 Unauthorized", however this is not catchable. The
more desirable result in the case would be the same as non-WSDL mode
where the faultstring is "Unauthorized" and faultcode is "HTTP".
Reproduced on Windows XP with Apache/2.0.55 PHP 5.1.6, Apache/2.2.3 PHP
5.2.0 (20060830) and Apache/2.2.3 PHP 6.0.0 (20060830).
Reproduce code:
---------------
/* WSDL is behind basic authentication */
try {
$soap = new SoapClient('http://localhost/some.wsdl',
array('login' =>
'badlogin', 'password' => 'badpass'));
} catch (SoapFault $e) {
echo '<p>Fault String: '.$e->faultstring.'<p>';
echo '<p>Fault Code: '.$e->faultcode.'<p>';
}
Expected result:
----------------
Fault String: Unauthorized
Fault Code: HTTP
Actual result:
--------------
Warning: SoapClient::__construct({snip:wsdl})
[function.SoapClient---construct]: failed to open stream: HTTP request
failed! HTTP/1.1 401 Unauthorized in {snip:path}
Warning: SoapClient::__construct() [function.SoapClient---construct]:
I/O warning : failed to load external entity "{snip:wsdl}" in
{snip:path}
Fault String: SOAP-ERROR: Parsing WSDL: Couldn't load from
'http://localhost/some.wsdl'
Fault Code: WSDL
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=38703&edit=1
Thread (8 messages)