From ccd9f14d70f9ce3447f98aca37495a8a14543c4f Mon Sep 17 00:00:00 2001 From: Timur Nugaev Date: Tue, 11 Feb 2025 20:35:19 +0000 Subject: [PATCH] fix & solve --- Main.java | 4 ++-- PasswordLockoutRequirement.java | 32 ++++++++++++++++++++++++++++++++ PasswordMinimumLength.java | 2 -- PasswordPolicy.java | 4 +--- 4 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 PasswordLockoutRequirement.java diff --git a/Main.java b/Main.java index 41c20e2..25b0f99 100644 --- a/Main.java +++ b/Main.java @@ -19,12 +19,12 @@ public static void main(String[] args) { switch (choice) { case 1: - lockoutRequirement.recordFailedAttempt(); + lockoutRequirement.countFail(); System.out.println("Failed attempt recorded."); break; case 2: - lockoutRequirement.resetFailedAttempts(); + lockoutRequirement.resetFail(); System.out.println("Failed attempts reset."); break; diff --git a/PasswordLockoutRequirement.java b/PasswordLockoutRequirement.java new file mode 100644 index 0000000..359c347 --- /dev/null +++ b/PasswordLockoutRequirement.java @@ -0,0 +1,32 @@ +public class PasswordLockoutRequirement extends Requirement{ + + private String username; + private CheckStatus status; + private int attempts; + + @Override + public CheckStatus check() { + return status; + } + + public PasswordLockoutRequirement(String username){ + super("Requirement lockout: Password Lockout After 5 failed attemps"); + this.username = username; + this.status = CheckStatus.INCOMPLETE; + this.attempts = 0; + } + + public void countFail(){ + if (attempts >= 5) { + status = CheckStatus.FAIL; + System.out.println("6+ attempts failed: " + username); + return; + } + ++attempts; + } + + public void resetFail(){ + attempts = 0; + status = CheckStatus.INCOMPLETE; + } +} diff --git a/PasswordMinimumLength.java b/PasswordMinimumLength.java index e3262ca..efe407d 100644 --- a/PasswordMinimumLength.java +++ b/PasswordMinimumLength.java @@ -1,6 +1,4 @@ -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..ad60228 100644 --- a/PasswordPolicy.java +++ b/PasswordPolicy.java @@ -1,6 +1,4 @@ -package rqcode.tutorial.tutorial_new; -import rqcode.concepts.CombinedRequirements; -import rqcode.concepts.Requirement; + import java.util.Arrays; import java.util.List;