Показать пользовательское сообщение об ошибке в Spring Security

Отображать пользовательское сообщение об ошибке в 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», см. Рисунок ниже:

message.properties

Чтобы переопределить его, найдите, какой ключ генерирует какое сообщение об ошибке в файле 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.

Скачать исходный код