添加安全组接口

This commit is contained in:
az
2023-12-05 21:33:21 +08:00
parent 00308c0f5c
commit 169551445c
10 changed files with 324 additions and 3 deletions
+1 -1
View File
@@ -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"'
}
+1 -1
View File
@@ -1,5 +1,5 @@
module.exports = {
NODE_ENV: '"production"',
ENV_CONFIG: '"prod"',
BASE_API: '"https://api-prod"'
BASE_API: '""'
}
+1 -1
View File
@@ -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",
@@ -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<SecurityGroupListReq> 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<SecurityRuleListRes> 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) {
}
}
@@ -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;
}
@@ -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;
}
@@ -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判断
* 单个ip192.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;
}
@@ -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判断
* 单个ip192.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;
}
@@ -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;
}
@@ -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判断
* 单个ip192.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;
}