Spring security 2.0.3 и словарь атак

Я использую Spring Security 2.0.3, и мне нужно реализовать простой блок атаки по словарю, имплантация довольно тривиальна, добавление свойства userstatus и значения заблокировано, когда значение присваивается, когда у него X раз неправильный вход в систему попытки с момента последнего входа в систему. проблема в том, как перенаправить через весеннюю защиту на соответствующую страницу или даже лучше
перенаправить на login.jsp и через некоторый маркер сеанса заблокировать входы (это блок JS только конечно, но он мне все еще нужен), интерфейс UserDetailService Spring Security определяет метод loadByUserName, который позволяет мне генерировать собственное расширение BadCredentialsException, но ExceptionTranslationFilter не делает этого. Позвольте мне использовать это, есть ли встроенный способ сделать это с весной или я должен что-то взломать? Спасибо

2 ответа

Решение

Я бы взглянул на раздел 2.3.5 документации. То, как я бы это сделал, это реализовать либо Pre-auth фильтр или Authentication Processing фильтр, который реализует вашу проверку против атаки методом грубой силы. Возможно, вы захотите создать фильтр, который в большинстве случаев просто делегирует исходный класс фильтра, за исключением проверки, чтобы убедиться, что пользователь сделал слишком много запросов и т. Д. Кроме того, вы также можете переопределить все функциональные возможности, вместо того, чтобы делегировать на оригинальный фильтр.

Реализуйте AuthenticationFailureHandler, который обновляет флаг подсчета / блокировки в БД и выполняет перенаправление. Я не рассчитывал на использование сеанса, потому что злоумышленник все равно не будет отправлять куки.

Другие вопросы по тегам