Spring Security перехватить неверный пароль - PullRequest
3 голосов
/ 04 февраля 2011

Я использую пружинную безопасность. Я использую aspectj для входа в систему неправильное имя пользователя или пароль. Мне удалось перехватить неправильное имя пользователя, проверив исключение loadUserByUsername. Как мне перехватить неправильный пароль?

Похоже, Spring получает объект пользователя и проверяет введенный пароль по паролю пользователя. Как я могу перехватить это для любого исключения

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 05 февраля 2011

Я не очень разбираюсь в аспектах, так что может не помочь.

Во-первых, вы должны спросить себя, действительно ли вам нужно различать неправильное имя пользователя и неправильный пароль - особенно, если эта информация возвращается пользователю.

По умолчанию Spring-Security не поощряет это, поэтому по умолчанию он возвращает BadCredentialsException в любом случае.

Spring security 3.0.x предоставляет метод public authenticate() (в классе AbstractUserDetailsAuthenticationProvider), который сначала извлекает пользователя в методе protected retrieveUser (), а затем выполняет проверку пароля в protected additionalAuthenticationChecks() метод.

Установив для свойства hideUserNotFoundExceptions значение false (по умолчанию true), метод authenticate() можно проверить на UserNotFoundException (в случае неправильного пользователя) и BadCredentialsException в случае неправильного пароль.

0 голосов
/ 04 февраля 2011

Обычно вы используете ExceptionTranslationFilter и FilterSecurityInterceptor для обработки всех ошибок аутентификации. Возможно, вы захотите просмотреть страницу цепочки фильтров безопасности и добавить пояснения к вашему вопросу, если это не даст вам того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...