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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: chris at reeltwo dot com
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2025 The PHP Group
All rights reserved.
Last updated: Thu Jan 16 11:01:29 2025 UTC