Вы можете сделать все это, используя Spring . & Spring Security
1) Блокировка учетной записи пользователя после нескольких неудачных попыток входа в систему в течение определенного периода времени.
Вы можете использовать Spring Security и не считать количество неудачных попыток и заблокировать пользователя здесь это статья
Распространенная проблема № 3: Как отключить пользователя после нескольких неудачных попыток входа в систему?
Общее требование пользователя - отключить / заблокировать учетную запись после нескольких неудачных попыток входа в систему. Сам Acegi не предоставляет ничего «из коробки», однако в вашем приложении вы можете реализовать и зарегистрировать org.springframework.context.ApplicationListener. Внутри прослушивателя событий вашего приложения вы можете проверить экземпляр конкретного AuthenticationFailureEvent, а затем вызвать интерфейс управления вашим приложением, чтобы обновить данные пользователя.
Например:
public void onApplicationEvent(ApplicationEvent event) {
// check failed event
if(event instanceof AuthenticationFailurePasswordEvent){
// call user management interface to increment failed login attempts, etc.
. . .
}
}
2) Срок действия пароля - N дней.
Вы можете запланировать задачу, используя Spring Quartz Support , которая сбрасывает пароль. Также вы можете иметь поле ExpiryDate в БД и запускать триггер каждый день @ 0000 Часы и выполнять вещи
3) Отслеживание истории паролей для каждого пользователя.
Используя БД, вы можете взять историю использованного пароля и использовать Поддержка Spring-DAO , чтобы сделать это легко.
кстати, если вы найдете какие-либо рамки, специально предназначенные для этого, дайте мне знать:)