diff --git a/app/proprietary/src/main/java/stirling/software/proprietary/security/model/AttemptCounter.java b/app/proprietary/src/main/java/stirling/software/proprietary/security/model/AttemptCounter.java index 10cd8eeb7..3d47c38ef 100644 --- a/app/proprietary/src/main/java/stirling/software/proprietary/security/model/AttemptCounter.java +++ b/app/proprietary/src/main/java/stirling/software/proprietary/security/model/AttemptCounter.java @@ -18,7 +18,8 @@ public class AttemptCounter { } public boolean shouldReset(long attemptIncrementTime) { - return System.currentTimeMillis() - lastAttemptTime > attemptIncrementTime; + long elapsed = System.currentTimeMillis() - lastAttemptTime; + return elapsed >= attemptIncrementTime; } public void reset() { diff --git a/app/proprietary/src/test/java/stirling/software/proprietary/security/model/AttemptCounterTest.java b/app/proprietary/src/test/java/stirling/software/proprietary/security/model/AttemptCounterTest.java index e6b28c23e..b910a4b3f 100644 --- a/app/proprietary/src/test/java/stirling/software/proprietary/security/model/AttemptCounterTest.java +++ b/app/proprietary/src/test/java/stirling/software/proprietary/security/model/AttemptCounterTest.java @@ -124,10 +124,8 @@ class AttemptCounterTest { } @Test - @DisplayName( - "returns FALSE when time difference is exactly equal to window (implementation uses" - + " '>')") - void shouldReturnFalseWhenExactlyWindow() { + @DisplayName("returns TRUE when time difference is exactly equal to window") + void shouldReturnTrueWhenExactlyWindow() { AttemptCounter counter = new AttemptCounter(); long window = 200L; long now = System.currentTimeMillis(); @@ -135,10 +133,10 @@ class AttemptCounterTest { // Simulate: last action was exactly 'window' ms ago setPrivateLong(counter, "lastAttemptTime", now - window); - // Purpose: Equality -> no reset, because implementation uses '>' - assertFalse( + // Purpose: Equality -> reset should occur because the window has fully elapsed + assertTrue( counter.shouldReset(window), - "With exactly equal difference, no reset should occur"); + "With exactly equal difference, the reset window has elapsed"); } @Test