|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+-- 密码改造一期:互联网管理端身份鉴别(短信双因子 + 登录策略)
|
|
|
2
|
+-- 执行前请备份 sys_user
|
|
|
3
|
+--
|
|
|
4
|
+-- 说明:
|
|
|
5
|
+-- 1. sys_user 扩展 login_policy 等字段,支持按用户覆盖登录方式
|
|
|
6
|
+-- 2. sys_login_policy 按「网络区域 + 角色」配置最低鉴别要求(如互联网 admin → SMS_2FA)
|
|
|
7
|
+-- 3. 应用配置 login.network-zone=INTERNET 且 internet-sms.enabled=true 后生效
|
|
|
8
|
+-- 4. 管理员账号须填写 phonenumber,否则无法接收登录短信
|
|
|
9
|
+
|
|
|
10
|
+-- 1. 用户表扩展(证书登录字段一期预留;login_policy 用于登录策略)
|
|
|
11
|
+ALTER TABLE sys_user
|
|
|
12
|
+ ADD COLUMN cert_sn VARCHAR(128) DEFAULT NULL COMMENT '国密证书序列号' AFTER remark,
|
|
|
13
|
+ ADD COLUMN cert_subject VARCHAR(512) DEFAULT NULL COMMENT '证书主题 DN' AFTER cert_sn,
|
|
|
14
|
+ ADD COLUMN login_policy VARCHAR(32) DEFAULT 'PASSWORD' COMMENT '登录策略:PASSWORD/CERT/SMS_2FA' AFTER cert_subject;
|
|
|
15
|
+
|
|
|
16
|
+CREATE INDEX idx_sys_user_cert_sn ON sys_user (cert_sn);
|
|
|
17
|
+
|
|
|
18
|
+-- 2. 登录策略配置表
|
|
|
19
|
+DROP TABLE IF EXISTS sys_login_policy;
|
|
|
20
|
+CREATE TABLE sys_login_policy (
|
|
|
21
|
+ policy_id BIGINT(20) NOT NULL AUTO_INCREMENT,
|
|
|
22
|
+ role_key VARCHAR(100) DEFAULT NULL COMMENT '角色权限字符,空表示默认',
|
|
|
23
|
+ network_zone VARCHAR(32) NOT NULL COMMENT 'INTERNAL/INTERNET',
|
|
|
24
|
+ policy_type VARCHAR(32) NOT NULL COMMENT 'CERT/SMS_2FA/PASSWORD',
|
|
|
25
|
+ enabled CHAR(1) DEFAULT '1',
|
|
|
26
|
+ remark VARCHAR(500) DEFAULT NULL,
|
|
|
27
|
+ create_by VARCHAR(64) DEFAULT '',
|
|
|
28
|
+ create_time DATETIME DEFAULT NULL,
|
|
|
29
|
+ update_by VARCHAR(64) DEFAULT '',
|
|
|
30
|
+ update_time DATETIME DEFAULT NULL,
|
|
|
31
|
+ PRIMARY KEY (policy_id)
|
|
|
32
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录策略配置';
|
|
|
33
|
+
|
|
|
34
|
+-- 互联网环境:超级管理员强制短信双因子
|
|
|
35
|
+INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
|
|
|
36
|
+VALUES ('admin', 'INTERNET', 'SMS_2FA', '1', '互联网超级管理员双因子', NOW());
|
|
|
37
|
+
|
|
|
38
|
+-- 互联网环境:默认策略(未匹配角色时)
|
|
|
39
|
+INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
|
|
|
40
|
+VALUES (NULL, 'INTERNET', 'SMS_2FA', '1', '互联网管理端默认双因子', NOW());
|