Dans Drupal 9 et 10, l'URL par défaut pour se connecter à l'interface d'administration est généralement /user/login
, ce qui peut être un vecteur pour des attaques de type brute force si elle reste inchangée. En la personnalisant, vous ajoutez une couche de sécurité supplémentaire et vous éloignez des robots malveillants.
En outre, personnaliser cette URL peut contribuer à renforcer l'identité de votre marque et à offrir une expérience plus cohérente à vos utilisateurs. Cela peut aussi être une exigence pour des raisons de structure de site ou de spécifications de projet.
Drupal est une plateforme offrant énormement de possibilités de personnalisation grâce à sa modularité. Pour faire des ajustements comme changer une URL, on peut simplement créer un module. Mais ne vous laissez pas impressionner par cette étape. Même si ça peut sembler un peu technique, mettre sur pied un module de base est plutôt aisé avec Drupal. On va y aller étape par étape, et vous verrez que c'est loin d'être insurmontable !
Pour commencer, créez un nouveau dossier dans le répertoire /modules/custom
de votre installation Drupal. Il est préférable de nommer le dossier de manière à refléter la fonction du module, mais pour simplifier l'exemple, nous allons juste mettre monmodule
.
Dans ce dossier, vous allez créer deux fichiers :
monmodule.info.yml
: Ce fichier informe Drupal de l'existence de votre module. Voici un exemple de contenu pour ce fichier :
name: Mon module type: module description: Fournit un chemin personnalisé pour la page d'identification. core_version_requirement: ^9 || ^10 package: Custom
monmodule.module
: Ce fichier sera utilisé si vous avez besoin d'implémenter des hooks ou des fonctionnalités spécifiques. Pour la modification de l'URL de connexion, ce fichier peut ne pas être nécessaire, mais il est bon de le créer au cas où vous auriez besoin d'ajouter des fonctions supplémentaires plus tard.
Avec ces fichiers en place, allez dans l'interface d'administration de Drupal sous Extensions
et activez votre nouveau module personnalisé.
Avec votre module de base en place, la prochaine étape consiste à utiliser un EventSubscriber
pour intercepter et modifier la route de connexion. Drupal 8 a introduit le concept de Symfony EventDispatcher, qui permet aux modules de réagir et d'agir sur divers événements dans le système. Drupal 9 et 10 continuent d'utiliser cette approche.
Pour commencer, vous devez créer un nouveau fichier pour créer un service et inscrire notre classe à un évènement . Ce fichier sera nommé monmodule.services.yml
et placé dans le dossier du module
Voici la structure de base que vous pouvez utiliser :
services: monmodule.route_subscriber: class: Drupal\monmodule\Routing\RouteSubscriber tags: - { name: event_subscriber }
L'ajout d'un tag avec le nom "event_subscriber" indique à Drupal que cette classe doit être incluse lorsque des événements sont déclenchés.
Ensuite, nous devons ajouter la classe de routage pour écouter l'événement.
Dans notre cas, La classe \Drupal\Core\Routing\RouteSubscriberBase
contient un écouteur d'évènement associé à l'évènement RoutingEvents
.
Nous allons donc créer une class RouteSubscriber
qui étend la classe RouteSubscriberBase
Pour respecter les convention, Créer un fichier RouteSubscriber.php
dans le dossier src/Routing
de notre module
<?php namespace Drupal\monmodule\Routing; use Drupal\Core\Routing\RouteSubscriberBase; use Symfony\Component\Routing\RouteCollection; /** * Listens to the dynamic route events. */ class RouteSubscriber extends RouteSubscriberBase { /** * {@inheritdoc} */ protected function alterRoutes(RouteCollection $collection) { // Modifie le chemin '/user/login' en '/mon-url-de-login'. if ($route = $collection->get('user.login')) { $route->setPath('/mon-url-de-login'); } } }
Dans le code ci-dessus, la méthode alterRoutes
est utilisée pour modifier la route de connexion. Vous pouvez remplacer '/mon-url-de-login'
par le chemin de votre choix.
Au final, votre dossier monmodule devrait ressembler à cela:
Enregistrez les modifications, effacez les caches de votre site Drupal pour que les modifications prennent effet, et votre EventSubscriber sera en place. Testez la nouvelle URL de connexion pour vous assurer qu'elle fonctionne comme prévu.
L'utilisation de modules contribués peut être une solution plus rapide et plus facile, surtout si vous n'êtes pas à l'aise avec le code ou si vous cherchez à implémenter des changements rapidement. Cependant, assurez-vous que les modules que vous choisissez sont bien maintenus et compatibles avec la version de Drupal que vous utilisez.
Voici quelques options populaires :
/user/login
vers une autre URL ou page de votre choix.En fin de compte, la méthode que vous choisissez doit être alignée avec les besoins spécifiques de votre site, vos compétences techniques, et les ressources dont vous disposez.
Une fois la modification effectuée avec succès, votre site Drupal bénéficiera d'une route de connexion personnalisée qui peut renforcer la marque de votre site et/ou sa sécurité.