Отображать пользовательское сообщение об ошибке в Spring Security
В Spring Security при сбое аутентификации будут отображаться следующие предопределенные сообщения об ошибках:
Spring display : Bad credentials
В этой статье мы покажем вам, как переопределить указанное выше сообщение об ошибке и отобразить ваше собственное сообщение об ошибке. Например,
Spring display : Bad credentials You want override it with this message : Invalid username or password
Решение
Spring Security хранит сообщения в «messages.properties» внутри «spring-security-core.jar», см. Рисунок ниже:
Чтобы переопределить его, найдите, какой ключ генерирует какое сообщение об ошибке в файле spring securitymessage.properties, и переопределите его с помощью собственного файла свойств.
1. Переопределить ключ и сообщение
Создайте новый файл свойств, поместите его в путь к классам проекта и переопределите «ключ» Spring своим собственным сообщением об ошибке. В этом случае просто переопределите «AbstractUserDetailsAuthenticationProvider.badCredentials
».
Файл: mymessages.properties
AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
2. Регистрация ResourceBundleMessageSource
Чтобы загрузить указанный выше файл свойств, определитеResourceBundleMessageSource
в файле конфигурации компонента Spring.
mymessages
Теперь, когда аутентификация не удалась, будет отображаться ваше собственное сообщение об ошибке «Invalid username or password» вместо стандартного «Bad credentials».
Note
С помощью этого трюка вы можете легко переопределить любые сообщения Spring Security.
Скачать исходный код
Скачать -Spring-Security-Display-Custom-Error-Msg.zip (9 КБ)