添加安全组接口

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
@@ -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;
}