Class RedisLoginRetryService

java.lang.Object
com.bytedesk.core.redis.RedisLoginRetryService

@Service public class RedisLoginRetryService extends Object
登录重试次数限制和账户锁定的Redis服务 专门处理用户登录失败重试、账户锁定等安全相关功能
  • Field Details

    • redisTemplate

      @Autowired private org.springframework.data.redis.core.RedisTemplate<String,String> redisTemplate
  • Constructor Details

    • RedisLoginRetryService

      public RedisLoginRetryService()
  • Method Details

    • getLoginFailedCount

      public int getLoginFailedCount(String username)
      获取用户登录失败次数
      Parameters:
      username - 用户名
      Returns:
      失败次数,如果不存在返回0
    • incrementLoginFailedCount

      public int incrementLoginFailedCount(String username, long ttl)
      增加用户登录失败次数
      Parameters:
      username - 用户名
      ttl - 过期时间(秒)
      Returns:
      增加后的失败次数
    • resetLoginFailedCount

      public void resetLoginFailedCount(String username)
      重置用户登录失败次数
      Parameters:
      username - 用户名
    • isUserLocked

      public boolean isUserLocked(String username)
      检查用户是否被锁定
      Parameters:
      username - 用户名
      Returns:
      true if locked, false otherwise
    • lockUser

      public void lockUser(String username, long ttl)
      锁定用户登录
      Parameters:
      username - 用户名
      ttl - 锁定时间(秒)
    • unlockUser

      public void unlockUser(String username)
      解锁用户登录
      Parameters:
      username - 用户名
    • getLockRemainingTime

      public long getLockRemainingTime(String username)
      获取用户锁定剩余时间
      Parameters:
      username - 用户名
      Returns:
      剩余锁定时间(秒),如果未锁定返回-1
    • cleanupExpiredRecords

      public void cleanupExpiredRecords()
      批量清理过期的登录失败记录 用于定期清理,避免Redis内存占用过多
    • getLoginRetryStats

      public RedisLoginRetryService.LoginRetryStats getLoginRetryStats(String username)
      获取用户登录状态统计信息
      Parameters:
      username - 用户名
      Returns:
      包含失败次数和锁定状态的统计信息