diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/entity/SecurityRuleDO.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/entity/SecurityRuleDO.java index 9a3240d4..9a9ff45a 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/entity/SecurityRuleDO.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/entity/SecurityRuleDO.java @@ -135,7 +135,7 @@ public class SecurityRuleDO { } } - if (rule.equalsIgnoreCase("ALL") || rule.equals("0.0.0.0") || rule.equals("0..0.0.0/0")) { + if (rule.equalsIgnoreCase("ALL") || rule.equals("0.0.0.0") || rule.equals("0.0.0.0/0")) { return passType == SecurityRulePassTypeEnum.ALLOW ? SecurityRulePassTypeEnum.ALLOW : SecurityRulePassTypeEnum.DENY; } diff --git a/neutrino-proxy-server/src/main/resources/sql/h2/init-structure.sql b/neutrino-proxy-server/src/main/resources/sql/h2/init-structure.sql index 389a8799..d75fadce 100644 --- a/neutrino-proxy-server/src/main/resources/sql/h2/init-structure.sql +++ b/neutrino-proxy-server/src/main/resources/sql/h2/init-structure.sql @@ -45,6 +45,37 @@ CREATE TABLE IF NOT EXISTS `port_group` ( `create_time` TIMESTAMP NOT NULL, `update_time` TIMESTAMP NOT NULL ); + +#安全组 +CREATE TABLE IF NOT EXISTS `security_group` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(20) NOT NULL, + `description` VARCHAR(255), + `user_id` INTEGER NOT NULL, + `enable` VARCHAR(20) NOT NULL, + `default_pass_type` VARCHAR(20) NOT NULL, + `create_time` TIMESTAMP NOT NULL, + `update_time` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`) +); + +#安全组规则 +CREATE TABLE IF NOT EXISTS `security_rule` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `group_id` INTEGER NOT NULL, + `name` VARCHAR(20) NOT NULL, + `description` VARCHAR(255) NOT NULL, + `rule` text NOT NULL, + `pass_type` VARCHAR(20) NOT NULL, + `priority` INTEGER NOT NULL, + `user_id` INTEGER NOT NULL, + `enable` VARCHAR(20) NOT NULL, + `create_time` TIMESTAMP NOT NULL, + `update_time` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`) +); +CREATE INDEX IF NOT EXISTS I_security_rule_group_id ON security_rule(group_id); + #############################代理配置相关表############################# #license表 CREATE TABLE IF NOT EXISTS `license` ( @@ -73,6 +104,7 @@ CREATE TABLE IF NOT EXISTS `port_mapping` ( `proxy_responses` INTEGER(20) NOT NULL DEFAULT 0, `proxy_timeout_ms` INTEGER(20) NOT NULL DEFAULT 0, `enable` INTEGER(2) NOT NULL, + `security_group_id` INTEGER(20) NOT NULL DEFAULT 0, `create_time` TIMESTAMP NOT NULL, `update_time` TIMESTAMP NOT NULL ); diff --git a/neutrino-proxy-server/src/main/resources/sql/h2/update/UPDATE-20231207.SQL b/neutrino-proxy-server/src/main/resources/sql/h2/update/UPDATE-20231207.SQL new file mode 100644 index 00000000..9b0d9f5e --- /dev/null +++ b/neutrino-proxy-server/src/main/resources/sql/h2/update/UPDATE-20231207.SQL @@ -0,0 +1,30 @@ +#安全组 +CREATE TABLE IF NOT EXISTS `security_group` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(20) NOT NULL, + `description` VARCHAR(255), + `user_id` INTEGER NOT NULL, + `enable` VARCHAR(20) NOT NULL, + `default_pass_type` VARCHAR(20) NOT NULL, + `create_time` TIMESTAMP NOT NULL, + `update_time` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`) +); + +#安全组规则 +CREATE TABLE IF NOT EXISTS `security_rule` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `group_id` INTEGER NOT NULL, + `name` VARCHAR(20) NOT NULL, + `description` VARCHAR(255) NOT NULL, + `rule` text NOT NULL, + `pass_type` VARCHAR(20) NOT NULL, + `priority` INTEGER NOT NULL, + `user_id` INTEGER NOT NULL, + `enable` VARCHAR(20) NOT NULL, + `create_time` TIMESTAMP NOT NULL, + `update_time` TIMESTAMP NOT NULL, + PRIMARY KEY (`id`) +); +CREATE INDEX IF NOT EXISTS I_security_rule_group_id ON security_rule(group_id); +ALTER TABLE `port_mapping` ADD COLUMN IF NOT EXISTS `security_group_id` INTEGER DEFAULT 0; diff --git a/neutrino-proxy-server/src/main/resources/sql/mariadb/init-structure.sql b/neutrino-proxy-server/src/main/resources/sql/mariadb/init-structure.sql index c6c0037b..fa7bbba9 100644 --- a/neutrino-proxy-server/src/main/resources/sql/mariadb/init-structure.sql +++ b/neutrino-proxy-server/src/main/resources/sql/mariadb/init-structure.sql @@ -50,6 +50,36 @@ CREATE TABLE IF NOT EXISTS `port_group` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; +#安全组 +CREATE TABLE IF NOT EXISTS `security_group` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` varchar(20) NOT NULL COMMENT '安全组名称', + `description` varchar(255) COMMENT '安全组描述', + `user_id` int NOT NULL COMMENT '用户ID', + `enable` varchar(20) NOT NULL COMMENT '启用状态', + `default_pass_type` varchar(20) NOT NULL COMMENT '默认放行类型', + `create_time` datetime(3) NOT NULL COMMENT '创建时间', + `update_time` datetime(3) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +#安全组规则 +CREATE TABLE IF NOT EXISTS `security_rule` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` int NOT NULL COMMENT '关联安全组', + `name` varchar(20) NOT NULL COMMENT '规则名称', + `description` varchar(255) NOT NULL COMMENT '规则描述', + `rule` text NOT NULL COMMENT '规则内容', + `pass_type` varchar(20) NOT NULL COMMENT '放行类型', + `priority` int(1) NOT NULL COMMENT '优先级', + `user_id` int NOT NULL COMMENT '用户ID', + `enable` varchar(20) NOT NULL COMMENT '启用状态', + `create_time` datetime(3) NOT NULL COMMENT '创建时间', + `update_time` datetime(3) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `I_security_rule_group_id_priority` (`group_id`, `priority`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + #############################代理配置相关表############################# #license表 CREATE TABLE IF NOT EXISTS `license` ( @@ -79,6 +109,7 @@ CREATE TABLE IF NOT EXISTS `port_mapping` ( `proxy_responses` int NOT NULL DEFAULT 0 COMMENT '代理响应数据包数量', `proxy_timeout_ms` int NOT NULL DEFAULT 0 COMMENT '代理超时毫秒数', `enable` int NOT NULL COMMENT '是否启用(1、启用 2、禁用)', + `security_group_id` int DEFAULT 0 COMMENT '安全组Id', `create_time` datetime(3) NOT NULL COMMENT '创建时间', `update_time` datetime(3) NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`), diff --git a/neutrino-proxy-server/src/main/resources/sql/mysql/init-structure.sql b/neutrino-proxy-server/src/main/resources/sql/mysql/init-structure.sql index 1234ddc0..7dd000c0 100644 --- a/neutrino-proxy-server/src/main/resources/sql/mysql/init-structure.sql +++ b/neutrino-proxy-server/src/main/resources/sql/mysql/init-structure.sql @@ -77,7 +77,7 @@ CREATE TABLE IF NOT EXISTS `security_rule` ( `create_time` datetime(3) NOT NULL COMMENT '创建时间', `update_time` datetime(3) NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`), - KEY `I_group_id_priority` (`group_id`, `priority`) USING BTREE + KEY `I_security_rule_group_id_priority` (`group_id`, `priority`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; #############################代理配置相关表############################# @@ -109,7 +109,7 @@ CREATE TABLE IF NOT EXISTS `port_mapping` ( `proxy_responses` int NOT NULL DEFAULT 0 COMMENT '代理响应数据包数量', `proxy_timeout_ms` int NOT NULL DEFAULT 0 COMMENT '代理超时毫秒数', `enable` int NOT NULL COMMENT '是否启用(1、启用 2、禁用)', - `security_group_id` int DEFAULT NULL COMMENT '安全组Id', + `security_group_id` int DEFAULT 0 COMMENT '安全组Id', `create_time` datetime(3) NOT NULL COMMENT '创建时间', `update_time` datetime(3) NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`), diff --git a/neutrino-proxy-server/src/main/resources/sql/mysql/update/UPDATE-20231207.SQL b/neutrino-proxy-server/src/main/resources/sql/mysql/update/UPDATE-20231207.SQL new file mode 100644 index 00000000..056de960 --- /dev/null +++ b/neutrino-proxy-server/src/main/resources/sql/mysql/update/UPDATE-20231207.SQL @@ -0,0 +1,32 @@ +#安全组 +CREATE TABLE IF NOT EXISTS `security_group` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` varchar(20) NOT NULL COMMENT '安全组名称', + `description` varchar(255) COMMENT '安全组描述', + `user_id` int NOT NULL COMMENT '用户ID', + `enable` varchar(20) NOT NULL COMMENT '启用状态', + `default_pass_type` varchar(20) NOT NULL COMMENT '默认放行类型', + `create_time` datetime(3) NOT NULL COMMENT '创建时间', + `update_time` datetime(3) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +#安全组规则 +CREATE TABLE IF NOT EXISTS `security_rule` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` int NOT NULL COMMENT '关联安全组', + `name` varchar(20) NOT NULL COMMENT '规则名称', + `description` varchar(255) NOT NULL COMMENT '规则描述', + `rule` text NOT NULL COMMENT '规则内容', + `pass_type` varchar(20) NOT NULL COMMENT '放行类型', + `priority` int(1) NOT NULL COMMENT '优先级', + `user_id` int NOT NULL COMMENT '用户ID', + `enable` varchar(20) NOT NULL COMMENT '启用状态', + `create_time` datetime(3) NOT NULL COMMENT '创建时间', + `update_time` datetime(3) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `I_security_rule_group_id_priority` (`group_id`, `priority`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +# port_mapping表增加字段 +ALTER TABLE `port_mapping` ADD COLUMN IF NOT EXISTS `security_group_id` int DEFAULT 0 COMMENT '安全组Id';