From 169551445caf30b2ab1ecb772dc65b7c37d0ce31 Mon Sep 17 00:00:00 2001 From: az Date: Tue, 5 Dec 2023 21:33:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=89=E5=85=A8=E7=BB=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- neutrino-proxy-admin/config/dev.env.js | 2 +- neutrino-proxy-admin/config/prod.env.js | 2 +- neutrino-proxy-admin/package.json | 2 +- .../server/controller/SecurityController.java | 108 ++++++++++++++++++ .../req/system/SecurityGroupCreateReq.java | 16 +++ .../req/system/SecurityGroupUpdateReq.java | 19 +++ .../req/system/SecurityRuleCreateReq.java | 57 +++++++++ .../req/system/SecurityRuleUpdateReq.java | 51 +++++++++ .../res/system/SecurityGroupListReq.java | 19 +++ .../res/system/SecurityRuleListRes.java | 51 +++++++++ 10 files changed, 324 insertions(+), 3 deletions(-) create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/SecurityController.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupCreateReq.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupUpdateReq.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleCreateReq.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleUpdateReq.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityGroupListReq.java create mode 100644 neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityRuleListRes.java diff --git a/neutrino-proxy-admin/config/dev.env.js b/neutrino-proxy-admin/config/dev.env.js index 03fd65b0..6bb64a3f 100644 --- a/neutrino-proxy-admin/config/dev.env.js +++ b/neutrino-proxy-admin/config/dev.env.js @@ -1,7 +1,7 @@ module.exports = { NODE_ENV: '"development"', ENV_CONFIG: '"dev"', - BASE_API: '"https://neutrino-proxy.asgc.fun/neutrino-proxy-server"', + BASE_API: '"http://localhost:8888/neutrino-proxy-server"', USER_NAME: '"visitor"', USER_PWD: '"123456"' } diff --git a/neutrino-proxy-admin/config/prod.env.js b/neutrino-proxy-admin/config/prod.env.js index 0c43ea73..c388e184 100644 --- a/neutrino-proxy-admin/config/prod.env.js +++ b/neutrino-proxy-admin/config/prod.env.js @@ -1,5 +1,5 @@ module.exports = { NODE_ENV: '"production"', ENV_CONFIG: '"prod"', - BASE_API: '"https://api-prod"' + BASE_API: '""' } diff --git a/neutrino-proxy-admin/package.json b/neutrino-proxy-admin/package.json index 943c7d6b..9073308a 100644 --- a/neutrino-proxy-admin/package.json +++ b/neutrino-proxy-admin/package.json @@ -70,7 +70,7 @@ "friendly-errors-webpack-plugin": "1.6.1", "html-webpack-plugin": "2.30.1", "node-notifier": "5.1.2", - "node-sass": "^4.7.2", + "node-sass": "^9.0.0", "optimize-css-assets-webpack-plugin": "3.2.0", "ora": "1.3.0", "portfinder": "1.0.13", diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/SecurityController.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/SecurityController.java new file mode 100644 index 00000000..d3514afe --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/SecurityController.java @@ -0,0 +1,108 @@ +package org.dromara.neutrinoproxy.server.controller; + +import org.dromara.neutrinoproxy.server.base.page.PageInfo; +import org.dromara.neutrinoproxy.server.controller.req.system.SecurityGroupCreateReq; +import org.dromara.neutrinoproxy.server.controller.req.system.SecurityGroupUpdateReq; +import org.dromara.neutrinoproxy.server.controller.res.system.SecurityGroupListReq; +import org.dromara.neutrinoproxy.server.controller.res.system.SecurityRuleListRes; +import org.noear.solon.annotation.Controller; +import org.noear.solon.annotation.Get; +import org.noear.solon.annotation.Mapping; +import org.noear.solon.annotation.Post; + +import java.util.List; + +@Controller +@Mapping("/security") +public class SecurityController { + + + /** + * 获取当前用户权限下的安全组 + */ + @Get + @Mapping("/group/s") + public List getGroups() { + + return null; + } + + @Post + @Mapping("/group/create") + public void createGroup(SecurityGroupCreateReq req) { + + } + + @Post + @Mapping("/group/update") + public void updateGroup(SecurityGroupUpdateReq req) { + + } + + /** + * 将级联删除对应规则 + * @param groupId + */ + @Post + @Mapping("/group/delete") + public void updateGroup(Integer groupId) { + + } + + @Post + @Mapping("/group/enable") + public void enableGroup(Integer groupId) { + + } + + @Post + @Mapping("/group/disable") + public void disableGroup(Integer groupId) { + + } + + @Post + @Mapping("/port/bind/group") + public void portBindGroup(Integer portId, Integer groupId) { + + } + + @Get + @Mapping("/rule/s") + public List getRulesByGroupId(Integer groupId) { + + return null; + } + + @Post + @Mapping("/rule/create") + public void createRule() { + + } + + @Post + @Mapping("/rule/update") + public void updateRule() { + + } + + @Post + @Mapping("/rule/delete") + public void deleteRule(Integer ruleId) { + + } + + + @Post + @Mapping("/rule/enable") + public void enableRule(Integer ruleId) { + + } + + @Post + @Mapping("/rule/disable") + public void disableRule(Integer ruleId) { + + } + +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupCreateReq.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupCreateReq.java new file mode 100644 index 00000000..9a13ea57 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupCreateReq.java @@ -0,0 +1,16 @@ +package org.dromara.neutrinoproxy.server.controller.req.system; + +import lombok.Data; + +@Data +public class SecurityGroupCreateReq { + /** + * 组名 + */ + private String name; + + /** + * 描述 + */ + private String description; +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupUpdateReq.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupUpdateReq.java new file mode 100644 index 00000000..af3fc7e2 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityGroupUpdateReq.java @@ -0,0 +1,19 @@ +package org.dromara.neutrinoproxy.server.controller.req.system; + +import lombok.Data; + +@Data +public class SecurityGroupUpdateReq { + + private Integer id; + + /** + * 组名 + */ + private String name; + + /** + * 描述 + */ + private String description; +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleCreateReq.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleCreateReq.java new file mode 100644 index 00000000..95285858 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleCreateReq.java @@ -0,0 +1,57 @@ +package org.dromara.neutrinoproxy.server.controller.req.system; + +import cn.hutool.core.net.Ipv4Util; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.ToString; +import lombok.experimental.Accessors; +import org.dromara.neutrinoproxy.server.constant.EnableStatusEnum; +import org.dromara.neutrinoproxy.server.constant.SecurityRulePassTypeEnum; + +import java.util.Date; + +@Data +@ToString +@Accessors(chain = true) +public class SecurityRuleCreateReq { + + /** + * 所属安全组 + */ + private Integer groupId; + + /** + * 规则名 + */ + private String name; + + /** + * 规则描述 + */ + private String description; + + /** + * 规则,ipv6只支持单个ip判断 + * 单个ip:192.168.1.1,0:0:0:0:0:0:10.0.0.1 + * 范围类型:192.168.1.0-192.168.1.255 + * 掩码类型:192.168.1.0/24 + * 泛型:0.0.0.0/ALL + * 每个类型中间以英文逗号分隔 + */ + private String rule; + + /** + * 放行类型,reject 或 allow + * {@link SecurityRulePassTypeEnum} + */ + private SecurityRulePassTypeEnum passType; + + /** + * 优先级,数字越小,优先级越高 + */ + private Integer priority; + +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleUpdateReq.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleUpdateReq.java new file mode 100644 index 00000000..47c7e2fb --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/req/system/SecurityRuleUpdateReq.java @@ -0,0 +1,51 @@ +package org.dromara.neutrinoproxy.server.controller.req.system; + +import lombok.Data; +import lombok.ToString; +import lombok.experimental.Accessors; +import org.dromara.neutrinoproxy.server.constant.SecurityRulePassTypeEnum; + +@Data +@ToString +@Accessors(chain = true) +public class SecurityRuleUpdateReq { + + private Integer id; + + /** + * 所属安全组 + */ + private Integer groupId; + + /** + * 规则名 + */ + private String name; + + /** + * 规则描述 + */ + private String description; + + /** + * 规则,ipv6只支持单个ip判断 + * 单个ip:192.168.1.1,0:0:0:0:0:0:10.0.0.1 + * 范围类型:192.168.1.0-192.168.1.255 + * 掩码类型:192.168.1.0/24 + * 泛型:0.0.0.0/ALL + * 每个类型中间以英文逗号分隔 + */ + private String rule; + + /** + * 放行类型,reject 或 allow + * {@link SecurityRulePassTypeEnum} + */ + private SecurityRulePassTypeEnum passType; + + /** + * 优先级,数字越小,优先级越高 + */ + private Integer priority; + +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityGroupListReq.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityGroupListReq.java new file mode 100644 index 00000000..8d39485b --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityGroupListReq.java @@ -0,0 +1,19 @@ +package org.dromara.neutrinoproxy.server.controller.res.system; + +import lombok.Data; + +@Data +public class SecurityGroupListReq { + + private Integer id; + + /** + * 组名 + */ + private String name; + + /** + * 描述 + */ + private String description; +} diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityRuleListRes.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityRuleListRes.java new file mode 100644 index 00000000..a71fbae0 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/system/SecurityRuleListRes.java @@ -0,0 +1,51 @@ +package org.dromara.neutrinoproxy.server.controller.res.system; + +import lombok.Data; +import lombok.ToString; +import lombok.experimental.Accessors; +import org.dromara.neutrinoproxy.server.constant.SecurityRulePassTypeEnum; + +@Data +@ToString +@Accessors(chain = true) +public class SecurityRuleListRes { + + private Integer id; + + /** + * 所属安全组 + */ + private Integer groupId; + + /** + * 规则名 + */ + private String name; + + /** + * 规则描述 + */ + private String description; + + /** + * 规则,ipv6只支持单个ip判断 + * 单个ip:192.168.1.1,0:0:0:0:0:0:10.0.0.1 + * 范围类型:192.168.1.0-192.168.1.255 + * 掩码类型:192.168.1.0/24 + * 泛型:0.0.0.0/ALL + * 每个类型中间以英文逗号分隔 + */ + private String rule; + + /** + * 放行类型,reject 或 allow + * {@link SecurityRulePassTypeEnum} + */ + private SecurityRulePassTypeEnum passType; + + /** + * 优先级,数字越小,优先级越高 + */ + private Integer priority; + +}