| | |
| | | return CacheConstants.PWD_ERR_CNT_KEY + username; |
| | | } |
| | | |
| | | /** |
| | | * 检查账号是否处于锁定状态(锁定期内直接抛出锁定提示)。 |
| | | * 在限流之前调用,避免锁定提示被"登录尝试过于频繁"掩盖。 |
| | | * |
| | | * @param username 用户名 |
| | | * @param request 请求 |
| | | */ |
| | | public void checkLocked(String username, HttpServletRequest request) |
| | | { |
| | | Integer retryCount = redisService.getIntegerCacheObject(getCacheKey(username)); |
| | | if (retryCount != null && retryCount >= maxRetryCount) |
| | | { |
| | | String errMsg = String.format("密码输入错误%s次,帐户锁定%s分钟", maxRetryCount, lockTime); |
| | | throw new ServiceException(errMsg); |
| | | } |
| | | } |
| | | |
| | | public void validate(SysUser user, String password, HttpServletRequest request) |
| | | { |
| | | String username = user.getUserName(); |
| | | |
| | | Integer retryCount = redisService.getCacheObject(getCacheKey(username)); |
| | | Integer retryCount = redisService.getIntegerCacheObject(getCacheKey(username)); |
| | | |
| | | if (retryCount == null) |
| | | { |