ZF-5565: Zend_Soap_Server - method handle() - only returns null by an non user error (error handling -> E_USER_ERROR)

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.


© 2006-2018 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.