From 3d12e46692c797f7ac03d5136be054856cb0bc84 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 17 Oct 2019 14:47:46 +0200 Subject: [PATCH] [DI] made the `%env(base64:...)%` processor able to decode base64url --- src/Symfony/Component/DependencyInjection/CHANGELOG.md | 1 + .../Component/DependencyInjection/EnvVarProcessor.php | 2 +- .../DependencyInjection/Tests/EnvVarProcessorTest.php | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/CHANGELOG.md b/src/Symfony/Component/DependencyInjection/CHANGELOG.md index c9477b8848411..461d52abd15c3 100644 --- a/src/Symfony/Component/DependencyInjection/CHANGELOG.md +++ b/src/Symfony/Component/DependencyInjection/CHANGELOG.md @@ -14,6 +14,7 @@ CHANGELOG * added ability to define a static priority method for tagged service * added support for improved syntax to define method calls in Yaml * added `LazyString` for lazy computation of string values injected into services + * made the `%env(base64:...)%` processor able to decode base64url 4.3.0 ----- diff --git a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php index 9231cf48c5fb5..aef13a9ad1c63 100644 --- a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php +++ b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php @@ -173,7 +173,7 @@ public function getEnv($prefix, $name, \Closure $getEnv) } if ('base64' === $prefix) { - return base64_decode($env); + return base64_decode(strtr($env, '-_', '+/')); } if ('json' === $prefix) { diff --git a/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php b/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php index c960c2f1ada2c..12d852f4535c4 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php @@ -231,6 +231,12 @@ public function testGetEnvBase64() }); $this->assertSame('hello', $result); + + $result = $processor->getEnv('base64', 'foo', function ($name) { return '/+0='; }); + $this->assertSame("\xFF\xED", $result); + + $result = $processor->getEnv('base64', 'foo', function ($name) { return '_-0='; }); + $this->assertSame("\xFF\xED", $result); } public function testGetEnvTrim() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy