Для настройки безопасности Spring в Spring Boot. Поставщик аутентификации LDAP по умолчанию настроен на использование класса BindAuthenticator.
Этот класс содержит метод
/**
* Allows subclasses to inspect the exception thrown by an attempt to bind with a
* particular DN. The default implementation just reports the failure to the debug
* logger.
*/
protected void handleBindException(String userDn, String username, Throwable cause) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to bind as " + userDn + ": " + cause);
}
}
Этот метод предназначен для обработки исключений, связанных с аутентификацией, таких как недействительные учетные данные.
Я хочу переопределить этот метод, чтобы я мог справиться с этой проблемой и вернуть правильное сообщение об ошибке на основе кодов ошибок, возвращаемых LDAP. как неверный пароль или учетная запись заблокирована.
Текущая реализация LDAP всегда возвращает «Неверные учетные данные», что не дает правильного представления о том, почему мои учетные данные недействительны. я хочу покрыть случаи
- где аккаунт заблокирован
- срок действия пароля истек, поэтому я могу перенаправить, чтобы изменить пароль
- учетная запись заблокирована из-за количества неправильных попыток ввода пароля
Пожалуйста помоги