diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/PhpSerializerTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/PhpSerializerTest.php index 1532db5872..53905a053d 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/PhpSerializerTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/PhpSerializerTest.php @@ -58,7 +58,7 @@ class PhpSerializerTest extends TestCase $serializer = new PhpSerializer(); $serializer->decode([ - 'body' => 'O:13:"ReceivedSt0mp":0:{}', + 'body' => base64_encode('O:13:"ReceivedSt0mp":0:{}'), ]); } } diff --git a/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php b/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php index f9aed0e0d2..6a27529c55 100644 --- a/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php +++ b/src/Symfony/Component/Messenger/Transport/Serialization/PhpSerializer.php @@ -30,7 +30,13 @@ class PhpSerializer implements SerializerInterface throw new MessageDecodingFailedException('Encoded envelope should have at least a "body".'); } - return $this->safelyUnserialize($encodedEnvelope['body']); + $serializeEnvelope = base64_decode($encodedEnvelope['body']); + + if (false === $serializeEnvelope) { + throw new MessageDecodingFailedException('The "body" key could not be base64 decoded.'); + } + + return $this->safelyUnserialize($serializeEnvelope); } /** @@ -39,7 +45,7 @@ class PhpSerializer implements SerializerInterface public function encode(Envelope $envelope): array { return [ - 'body' => serialize($envelope), + 'body' => base64_encode(serialize($envelope)), ]; }