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:
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
Téléchargez-le -Spring-Security-Display-Custom-Error-Msg.zip (9 Ko)