Для настройки безопасности Spring в Spring Boot. Поставщик аутентификации LDAP по умолчанию настроен на использование класса BindAuthenticator.Как справиться с BindAuthenticator handleBindException для Spring Настройка аутентификации LDAP в Spring Boot
Этот класс содержит метод
/**
* 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 всегда возвращает «Bad Credentials», которая не дает правильного изображения, почему мои учетные данные недействительны. я хочу, чтобы покрыть случаи
- где счет закрыт
- пароля с истекшим сроком годности, так что я могу переадресовать изменить пароль
- счет заблокирован в связи с числом недействительных пароля повторит
Пожалуйста, помогите
Должен ли он ... Вы действительно хотите вернуть это конечному пользователю? С точки зрения безопасности, вы не хотите раскрывать эту информацию. Если учетная запись заблокирована, хакер теперь знает, что имеет действительное имя пользователя. То же самое вы говорите ему, что пароль неверен или если имя пользователя не существует. –
@Denium Я создаю это для внутреннего приложения, только сотрудник может получить доступ к интрасети. Так что это ожидание от моего продукта Owner :) – Ahsan
С точки зрения безопасности это не имеет значения. Кто говорит, что все пользователи хорошо согласны, что насчет недовольных сотрудников.Я могу представить, что вам может понадобиться эта информация в ваших журналах, но вы хотите быть настолько универсальной для внешнего мира. –