Interface LoginAttemptTracker

All Known Implementing Classes:
DefaultLoginAttemptTracker

public interface LoginAttemptTracker

登入嘗試追蹤器

追蹤使用者登入失敗次數與鎖定狀態,提供完整的登入鎖定機制管理功能。

使用時機

執行緒安全性:實作類別必須確保執行緒安全。

  • Method Details

    • recordFailure

      int recordFailure(String principal)

      記錄登入失敗

      每次呼叫會累加失敗次數,當達到閾值時自動觸發鎖定機制。

      Parameters:
      principal - 使用者帳號
      Returns:
      當前失敗次數
    • isLocked

      boolean isLocked(String principal)

      檢查帳號是否已鎖定

      判斷標準:鎖定到期時間存在且晚於當前時間。

      Parameters:
      principal - 使用者帳號
      Returns:
      true 表示已鎖定,false 表示未鎖定
    • getRemainingLockoutTime

      Optional<Duration> getRemainingLockoutTime(String principal)
      取得剩餘鎖定時間
      Parameters:
      principal - 使用者帳號
      Returns:
      剩餘時間,若未鎖定或已過期則回傳 empty
    • clearAttempts

      void clearAttempts(String principal)

      清除失敗記錄

      通常在登入成功時呼叫,清除該使用者的所有失敗記錄與鎖定狀態。

      Parameters:
      principal - 使用者帳號
    • getFailureCount

      int getFailureCount(String principal)
      取得當前失敗次數
      Parameters:
      principal - 使用者帳號
      Returns:
      失敗次數,若無記錄則回傳 0