php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #38703 SOAP Basic Authentication Failure Error Messages
Submitted: 2006-09-03 22:18 UTC Modified: 2006-09-12 08:05 UTC
Votes:27
Avg. Score:4.1 ± 0.9
Reproduced:22 of 24 (91.7%)
Same Version:4 (18.2%)
Same OS:7 (31.8%)
From: chris at reeltwo dot com Assigned: dmitry (profile)
Status: Wont fix Package: SOAP related
PHP Version: 5.1.6 OS: Windows XP
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2006-09-03 22:18 UTC] 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

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-09-04 08:34 UTC] 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-04 23:52 UTC] chris at reeltwo dot com
The problem still occurs using the latest snapshot.
 [2006-09-05 12:43 UTC] 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-06 20:54 UTC] chris at reeltwo dot com
Thanks, I've used the set_error_handler() workaround.
 [2006-09-08 20:26 UTC] tony2001@php.net
Dmitry, so what's the status of this report?
"Won't fix"?
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 06:01:29 2024 UTC