From 97294053aec247f4396fa7923243bdc417d19c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=81ukaszewicz?= Date: Wed, 16 Aug 2017 13:52:18 +0200 Subject: [PATCH] CRM-8434: Hide API key from batch ERROR during Magento synchronization (#12577) * CRM-8434: Hide API key from batch ERROR during Magento synchronization - removed sensitive data from Exception message during creation --- .../Exception/SoapConnectionException.php | 4 ++ .../Utils/SecureErrorMessageHelperTest.php | 42 +++++++++++++++++++ .../Utils/SecureErrorMessageHelper.php | 22 ++++++++++ 3 files changed, 68 insertions(+) create mode 100644 src/Oro/Bundle/IntegrationBundle/Test/Unit/Utils/SecureErrorMessageHelperTest.php create mode 100644 src/Oro/Bundle/IntegrationBundle/Utils/SecureErrorMessageHelper.php diff --git a/src/Oro/Bundle/IntegrationBundle/Exception/SoapConnectionException.php b/src/Oro/Bundle/IntegrationBundle/Exception/SoapConnectionException.php index 679942932bb..1af7a96a4cf 100644 --- a/src/Oro/Bundle/IntegrationBundle/Exception/SoapConnectionException.php +++ b/src/Oro/Bundle/IntegrationBundle/Exception/SoapConnectionException.php @@ -2,6 +2,8 @@ namespace Oro\Bundle\IntegrationBundle\Exception; +use Oro\Bundle\IntegrationBundle\Utils\SecureErrorMessageHelper; + class SoapConnectionException extends TransportException { /** @@ -34,6 +36,8 @@ public static function createFromResponse($response, \Exception $exception = nul $message .= str_pad('[code]', 20, ' ', STR_PAD_RIGHT) . $code . PHP_EOL; $message .= PHP_EOL; + $message = SecureErrorMessageHelper::sanitizeSecureInfo($message); + $newException = new static($message, $exceptionCode, $exception); if ($exception instanceof \SoapFault) { $newException->setFaultCode($exception->faultcode); diff --git a/src/Oro/Bundle/IntegrationBundle/Test/Unit/Utils/SecureErrorMessageHelperTest.php b/src/Oro/Bundle/IntegrationBundle/Test/Unit/Utils/SecureErrorMessageHelperTest.php new file mode 100644 index 00000000000..b726856a249 --- /dev/null +++ b/src/Oro/Bundle/IntegrationBundle/Test/Unit/Utils/SecureErrorMessageHelperTest.php @@ -0,0 +1,42 @@ +assertEquals($expectedMessage, $sanitisedMessage); + } + + /** + * @return array + */ + public function messageProvider() + { + return [ + 'some other text' => [ + '$exceptionMessage' => 'some message text', + '$expectedMessage' => 'some message text' + ], + 'sanitized exception message' => [ + '$exceptionMessage' => '' . + 'abc' . + 'abcabc1', + '$expectedMessage' => '' . + 'abc' . + '***' + ] + ]; + } +} diff --git a/src/Oro/Bundle/IntegrationBundle/Utils/SecureErrorMessageHelper.php b/src/Oro/Bundle/IntegrationBundle/Utils/SecureErrorMessageHelper.php new file mode 100644 index 00000000000..fbfd2acdf2e --- /dev/null +++ b/src/Oro/Bundle/IntegrationBundle/Utils/SecureErrorMessageHelper.php @@ -0,0 +1,22 @@ +)(.*)()#i', '$1***$3', $message); + } + + return $message; + } +}