Issue Type: Improvement Created: 2009-01-16T05:58:48.000+0000 Last Updated: 2009-01-16T09:16:10.000+0000 Status: Resolved Fix version(s): - 1.8.0 (30/Apr/09)
Reporter: Sven (sunnysven) Assignee: Benjamin Eberlei (beberlei) Tags: - Zend_Soap_Server
Related issues: Attachments:
Zend_Soap_Server line 730 (SVN):
set_error_handler(array($this, 'handlePhpErrors'), E_USER_ERROR);
Change "E_USER_ERROR" to "E_ALL" so that I will be able to throw an SoapFault when a server error occures. So I will be able to overwrite the function "handlePhpErrors" in my Class "Ms_Soap_Server" which extends "Zend_Soap_Server".
With these changes it will be possible to return a SoapFault with a message like "sorry, internal server error" when an error occures in a function of a service class (database connection error).
Otherwise it is impossible to register my own error-handler, because Zend_Soap_Server registers an error-handler on line 730 (SVN). set_error_handler(array($this, 'handlePhpErrors'), E_USER_ERROR);
Posted by Benjamin Eberlei (beberlei) on 2009-01-16T09:11:16.000+0000
the problem why we cannot set this to E_ALL is the following: The errors would by default be thrown to the userland code, which for SOAP Servers is a potential security leak.
What i am going to do is the following, i'll refactor the registering of the fault handler and move it into a protected method which can be overwritten more easily than the handle() function.
Posted by Benjamin Eberlei (beberlei) on 2009-01-16T09:16:09.000+0000
Added new protected method _initializeSoapErrorContext() that can be overwritten by userland code.
Have you found an issue?
See the Overview section for more details.