Interface AttemptStore

All Known Implementing Classes:
CacheAttemptStore, InMemoryAttemptStore

public interface AttemptStore

登入失敗記錄儲存介面

定義儲存與查詢失敗次數、鎖定狀態的操作。 應用程式可實作不同的儲存機制(記憶體、Redis、資料庫等)。

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

  • Method Details

    • getFailureCount

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

      int incrementFailureCount(String principal)
      遞增使用者的失敗次數
      Parameters:
      principal - 使用者帳號
      Returns:
      遞增後的失敗次數
    • setLockoutTime

      void setLockoutTime(String principal, LocalDateTime unlockTime)
      設定使用者的鎖定到期時間
      Parameters:
      principal - 使用者帳號
      unlockTime - 鎖定到期時間
    • getLockoutTime

      Optional<LocalDateTime> getLockoutTime(String principal)
      取得使用者的鎖定到期時間
      Parameters:
      principal - 使用者帳號
      Returns:
      鎖定到期時間,若無記錄則回傳 empty
    • clear

      void clear(String principal)
      清除使用者的所有記錄(失敗次數與鎖定狀態)
      Parameters:
      principal - 使用者帳號