实现了账号密码登录错误5次后账号锁定,需要通过验证码登录才能解除的功能。
src/main/java/com/flow/pojo/LoginFailRecord.java
- 登录失败记录实体类src/main/java/com/flow/mapper/LoginFailRecordMapper.java
- 数据访问层src/main/java/com/flow/service/LoginFailRecordService.java
- 服务接口src/main/java/com/flow/service/impl/LoginFailRecordServiceImpl.java
- 服务实现src/main/java/com/flow/controller/LoginController.java
- 控制器(已修改)src/webapp/page/Login.jsp
- 登录页面(已修改)login_fail_record.sql
- 数据库表创建脚本CREATE TABLE `login_fail_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`account` varchar(100) NOT NULL COMMENT '账号',
`fail_count` int(11) DEFAULT 0 COMMENT '失败次数',
`lock_time` datetime DEFAULT NULL COMMENT '锁定时间',
`is_locked` tinyint(1) DEFAULT 0 COMMENT '是否锁定(0:未锁定,1:已锁定)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_account` (`account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录失败记录表';
/HxzkFlow/hxzk/accountLogin
{companyabbname: "LOCKED"}
/HxzkFlow/hxzk/unlockAccountBySms
{companyabbname: "UNLOCKED"}
login_fail_record.sql
创建表可以考虑添加以下功能:
1. 锁定时间限制(如30分钟后自动解锁)
2. 管理员手动解锁功能
3. 锁定记录查询和管理
4. 邮件通知功能