From 9eb4a069d45ed32ebe41fbc2e2bb9391a899513a Mon Sep 17 00:00:00 2001 From: Ainur <76821737+Ainur-1@users.noreply.github.com> Date: Mon, 10 Feb 2025 16:17:32 +0000 Subject: [PATCH] RQ_3_Ainur_Belyaev --- PasswordLockoutRequirement.java | 43 +++++++++++++++++++++++++++++++++ PasswordMinimumLength.java | 3 --- PasswordPolicy.java | 3 --- 3 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 PasswordLockoutRequirement.java diff --git a/PasswordLockoutRequirement.java b/PasswordLockoutRequirement.java new file mode 100644 index 0000000..a9011b6 --- /dev/null +++ b/PasswordLockoutRequirement.java @@ -0,0 +1,43 @@ +public class PasswordLockoutRequirement extends Requirement { + private String username; + private int failedAttempts; + private boolean isLocked; + + public PasswordLockoutRequirement(String username) { + this.username = username; + this.failedAttempts = 0; + this.isLocked = false; + } + + // Метод для записи неудачной попытки входа + public void recordFailedAttempt() { + if (!isLocked) { + failedAttempts++; + if (failedAttempts >= 5) { + isLocked = true; + System.out.println("Account " + username + " is locked due to 5 failed attempts."); + } else { + System.out.println("Failed attempt recorded. Total failed attempts: " + failedAttempts); + } + } else { + System.out.println("Account " + username + " is already locked."); + } + } + + // Метод для сброса счетчика неудачных попыток + public void resetFailedAttempts() { + failedAttempts = 0; + isLocked = false; + System.out.println("Failed attempts reset for account " + username + "."); + } + + // Метод для проверки статуса блокировки + @Override + public CheckStatus check() { + if (isLocked) { + return CheckStatus.PASS; // Учетная запись заблокирована + } else { + return CheckStatus.INCOMPLETE; // Учетная запись не заблокирована + } + } +} \ No newline at end of file diff --git a/PasswordMinimumLength.java b/PasswordMinimumLength.java index e3262ca..278928f 100644 --- a/PasswordMinimumLength.java +++ b/PasswordMinimumLength.java @@ -1,6 +1,3 @@ - -import rqcode.concepts.Requirement; - public class PasswordMinimumLength extends Requirement { private static final int MIN_LENGTH = 8; private static final int MAX_LENGTH = 64; diff --git a/PasswordPolicy.java b/PasswordPolicy.java index 251ba3b..d257ee1 100644 --- a/PasswordPolicy.java +++ b/PasswordPolicy.java @@ -1,6 +1,3 @@ -package rqcode.tutorial.tutorial_new; -import rqcode.concepts.CombinedRequirements; -import rqcode.concepts.Requirement; import java.util.Arrays; import java.util.List;