Afficher un message d’erreur personnalisé dans Spring Security

Afficher un message d'erreur personnalisé dans Spring Security

Dans Spring Security, lorsque l'authentification échoue, les messages d'erreur prédéfinis suivants s'affichent:

Spring display : Bad credentials

Dans cet article, nous vous montrons comment remplacer le message d'erreur ci-dessus et afficher votre message d'erreur personnalisé. Par exemple,

Spring display : Bad credentials
You want override it with this message : Invalid username or password

Solution

Spring Security a stocké les messages dans «messages.properties» à l'intérieur de «spring-security-core.jar», voir la figure ci-dessous:

message.properties

Pour le remplacer, recherchez quelle clé génère quel message d'erreur dans le fichier spring securitymessage.properties et redéfinissez-la avec votre propre fichier de propriétés.

1. Remplacer la clé et le message

Créez un nouveau fichier de propriétés, placez-le dans le chemin de classe du projet et remplacez la «clé» de Spring par votre message d'erreur personnalisé. Dans ce cas, remplacez simplement «AbstractUserDetailsAuthenticationProvider.badCredentials».

Fichier: mymessages.properties

AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password

2. Inscrire ResourceBundleMessageSource

Pour charger le fichier de propriétés ci-dessus, définissezResourceBundleMessageSource dans le fichier de configuration Spring bean.

  
    
        
        mymessages
        
    
  

Désormais, lorsque l'authentification échoue, il affichera votre message d'erreur personnalisé «Invalid username or password», au lieu du «Bad credentials» par défaut.

Note
Avec cette astuce, vous pouvez facilement remplacer tous les messages Spring Security.

Télécharger le code source