From 79337efef07e810a87200751d6575a21cbaea6f0 Mon Sep 17 00:00:00 2001 From: Gauthier DUPONT Date: Mon, 14 Apr 2025 16:33:12 +0200 Subject: [PATCH] feat(altcha): remove feature flag for security --- config/routes/annotations.yaml | 4 --- readme.md | 15 +---------- src/Flag/Controller/FlagController.php | 37 -------------------------- src/Flag/FlagAccessor.php | 26 ------------------ src/Flag/FlagEnum.php | 8 ------ src/Form/LoginType.php | 5 +--- 6 files changed, 2 insertions(+), 93 deletions(-) delete mode 100644 src/Flag/Controller/FlagController.php delete mode 100644 src/Flag/FlagAccessor.php delete mode 100644 src/Flag/FlagEnum.php diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml index 05a7b0b..e92efc5 100644 --- a/config/routes/annotations.yaml +++ b/config/routes/annotations.yaml @@ -2,10 +2,6 @@ controllers: resource: ../../src/Controller/ type: annotation -controllers_flag: - resource: ../../src/Flag/Controller/ - type: annotation - kernel: resource: ../../src/Kernel.php type: annotation diff --git a/readme.md b/readme.md index 909b999..60c4bb9 100644 --- a/readme.md +++ b/readme.md @@ -46,6 +46,7 @@ Elle permet de se connecter à une base de donnée et de vérifier un mot de pas | `PHP_FPM_PM_MIN_SPARE_SERVERS` | Définition du nombre minimum de processus enfants inactifs que PHP-FPM doit conserver en réserve. | 1 | | | `PHP_FPM_PM_MAX_SPARE_SERVERS` | Définition du nombre maximum de processus enfants inactifs que PHP-FPM peut conserver en réserve. | 3 | | | `XDG_DATA_HOME` | Définition du répertoire de base pour le stockage des données spécifiques à l'utilisateur. | /tmp/data | | +| `ALTCHA_ENABLED` | Désactivation d'altcha lors de la connexion | true | | ### Algorithmes de hashage compatibles @@ -110,20 +111,6 @@ ex : `'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sen | `mariadb` | Base de donnée mariadb support du test | `3306` | | `pgadmin` | pour administrer la base de donnée | `8085` | -### Configuration d'Altcha - -Altcha est activable/désactivable par un feature flag disponible à la route /flag/altcha (port 8082 par défaut). -La valeur de ce flag est stockée dans Redis (clé `altcha`) afin de pouvoir la modifier à la volée. Par sécurité, un fallback sur la variable d'environnement `ALTCHA_ENABLED` est effectué si la clé n'existe pas dans Redis. - -Exemple de désactivation: -```shell -curl --request PUT \ - --url https://dev.mse.local/auth/sql/flag/altcha \ - --header 'Content-Type: application/json' \ - --data '{"flagValue": false}' -``` - - ### build du sql theme copier les images et les fonts dans les dossier ./assets diff --git a/src/Flag/Controller/FlagController.php b/src/Flag/Controller/FlagController.php deleted file mode 100644 index 0f7e9e2..0000000 --- a/src/Flag/Controller/FlagController.php +++ /dev/null @@ -1,37 +0,0 @@ -getContent(), true, flags: JSON_THROW_ON_ERROR)[FlagAccessor::FLAG_VALUE]; - } catch (\ValueError $e) { - throw new \InvalidArgumentException('invalid flag name provided'); - } catch (JsonException $e) { - throw new \InvalidArgumentException('invalid json format'); - } - - $flag = $cache->getItem($flagName); - $flag->set($flagValue); - $cache->save($flag); - - return new JsonResponse( - [\sprintf('flag %s has been %s.', $flagName, $flagValue ? 'enabled' : 'disabled')] - ); - } -} diff --git a/src/Flag/FlagAccessor.php b/src/Flag/FlagAccessor.php deleted file mode 100644 index 1953042..0000000 --- a/src/Flag/FlagAccessor.php +++ /dev/null @@ -1,26 +0,0 @@ -cache->getItem($flagName->value)->get(); - - if (null === $flagValue) { - return $fallbackValue; - } - - return (bool) $flagValue; - } -} diff --git a/src/Flag/FlagEnum.php b/src/Flag/FlagEnum.php deleted file mode 100644 index 49a6d59..0000000 --- a/src/Flag/FlagEnum.php +++ /dev/null @@ -1,8 +0,0 @@ -flagAccessor->isFlagEnabled(FlagEnum::Altcha, $this->altchaEnabled)) { + if ($this->altchaEnabled) { $builder->add('altcha', AltchaType::class, [ 'translation_domain' => 'form', 'label' => 'altcha.widget.title',