Метод, описанный в статье, хранит количество попыток входа в систему, как вы заметили.Я бы сказал, что вы можете (и должны) делать это в приложении без сохранения состояния.«Без сохранения состояния» обычно означает, что HTTP-сеанс не используется на сервере для отслеживания какого-либо пользовательского состояния между HTTP-запросами.
Нет просто способа отслеживать HTTP-запросы без использования некоторой памяти на сервере.Я бы не беспокоился о том, соответствует ли это определению «без сохранения состояния».
Мы используем очень похожий подход (вдохновленный той же статьей), чтобы предотвратить попытки входа в систему методом грубой силы в противном случае полностью без сохранения состояния Spring RESTсервис, и он хорошо работает для нас.
Редактировать: я мог бы подумать о еще одном подходе: вы могли бы использовать fail2ban для анализа журналов приложений и (временно) запретить вредоносные IP-адреса на «более низком» уровне.