feat(imLoginFailureLog): 用户登录密码错误次数锁定与解锁能力(管理端)
- 安全策略登录限频由 JSON 文本改为结构化表单(次数/锁定分钟/窗口分钟),编辑校验同步扩展 - 失败日志新增解锁入口:/imLoginFailureLog/unlock 经 internal 通道调用 im-server 释放锁定 - 失败日志模型补充 accountHash 字段,解锁按钮按 risk_action=account_locked 展示 - 租户业务库初始化模板补充 im_login_lockouts 等表;新增解锁按钮菜单权限 SQL
This commit is contained in:
@@ -947,6 +947,22 @@ CREATE TABLE IF NOT EXISTS `im_login_failure_logs` (
|
||||
KEY `idx_im_login_failure_request` (`request_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `im_login_lockouts` (
|
||||
`id` bigint NOT NULL,
|
||||
`user_id` bigint DEFAULT NULL,
|
||||
`account_hash` char(64) NOT NULL,
|
||||
`failed_attempts` int NOT NULL DEFAULT '0',
|
||||
`window_started_at` datetime(3) DEFAULT NULL,
|
||||
`locked_until` datetime(3) DEFAULT NULL,
|
||||
`last_attempt_at` datetime(3) DEFAULT NULL,
|
||||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_im_login_lockouts_account` (`account_hash`),
|
||||
KEY `idx_im_login_lockouts_user` (`user_id`),
|
||||
KEY `idx_im_login_lockouts_locked` (`locked_until`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `im_mailbox_config` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||
`enabled` tinyint NOT NULL DEFAULT '1',
|
||||
|
||||
Reference in New Issue
Block a user