From c33f8d0ea2f1787c89ea6c39bf66804f4e174cc0 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Fri, 15 Mar 2024 14:27:02 +0100 Subject: [PATCH 1/2] Cast database credentials to string when read from the env --- config/autoload/entity-manager.global.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/config/autoload/entity-manager.global.php b/config/autoload/entity-manager.global.php index 849c91af0..3eb43edf2 100644 --- a/config/autoload/entity-manager.global.php +++ b/config/autoload/entity-manager.global.php @@ -16,6 +16,10 @@ 'mssql' => 'pdo_sqlsrv', default => 'pdo_mysql', }; + $readCredentialAsString = static function (EnvVars $envVar): string|null { + $value = $envVar->loadFromEnv(); + return $value === null ? null : (string) $value; + }; $resolveDefaultPort = static fn () => match ($driver) { 'postgres' => '5432', 'mssql' => '1433', @@ -28,6 +32,7 @@ 'postgres' => 'utf8', default => null, }; + $resolveConnection = static fn () => match ($driver) { null, 'sqlite' => [ 'driver' => 'pdo_sqlite', @@ -36,8 +41,8 @@ default => [ 'driver' => $resolveDriver(), 'dbname' => EnvVars::DB_NAME->loadFromEnv('shlink'), - 'user' => EnvVars::DB_USER->loadFromEnv(), - 'password' => EnvVars::DB_PASSWORD->loadFromEnv(), + 'user' => $readCredentialAsString(EnvVars::DB_USER), + 'password' => $readCredentialAsString(EnvVars::DB_PASSWORD), 'host' => EnvVars::DB_HOST->loadFromEnv(EnvVars::DB_UNIX_SOCKET->loadFromEnv()), 'port' => EnvVars::DB_PORT->loadFromEnv($resolveDefaultPort()), 'unix_socket' => $isMysqlCompatible ? EnvVars::DB_UNIX_SOCKET->loadFromEnv() : null, From 293725f9330e8d74edc1b3332b1f140048ff9a82 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Fri, 15 Mar 2024 18:22:27 +0100 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15502e0d6..abb8bf897 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com), and this project adheres to [Semantic Versioning](https://semver.org). +## [Unreleased] +### Added +* *Nothing* + +### Changed +* *Nothing* + +### Deprecated +* *Nothing* + +### Removed +* *Nothing* + +### Fixed +* [#2058](https://github.com/shlinkio/shlink/issues/2058) Fix DB credentials provided as env vars being casted to `int` if they include only numbers. + + ## [4.0.2] - 2024-03-09 ### Added * *Nothing*