AssetProcesson
2023-09-15 11:38:38 0 举报
产品漏洞工单请求
作者其他创作
大纲/内容
Class Student
上报发送postP result = this.execute(data);
3 有无this()
Y
N
VulInfoOrderDetailImport
任务指令asset-vms-task-common -->VmsTaskInstruction.start
5 显式初始化类成员变量
无
纳管资产asset_info
java 对象初始化过程
generateAndSaveTaskResult
asset-vms-data-submit
assetEntityMapper.getAssetListByIdsForVms(assetIdStr)
更新工单详情关联的漏洞状态VulInfoOrderDetailImport
线程数, 银行网点
List<KeyValueDo> keyValueDos = Lists.newArrayList();
StatWorkOrder
DataSubmitService.uploadFile
Nginx01
detailVulInfoMap
id
2023-09-04T09:49:04.953(LocalDateTime)
本地资产IDAssetLclId
k.setValue
6 执行构造方法中的其他代码
批量新增系统漏洞-漏洞纬度分区表(系统漏洞集合)insertSystemVulAsset
漏洞资产信息bt_vulnerability_asset_info
insert into bt_asset_vulnerability_info
获取已存在的 系统漏洞List<SystemVulDo> sysVuls = this.getNeedInsertVulInfo(orderDetailImports);
kafaka
2 构造函数参数初始化
orderInfMapper.insertSelective(orderInf)
Hystrix
查询系统该漏洞信息List<SystemVulDo> sysVuls
getLclOrderId
流程1
上报发送postP result = this.execute(data);
发kafka消息kafkaTemplate.send
工单数据保存order_inf
TaskId
select miit_code as vulID from vulnerability_infowhere del_flag='0' and miit_code in #{code}
是否存在orderID
对象头
d -> d.getVulId()).collect(Collectors.toList())
continue
4 隐式或显式调用super()
任务完成时间通知
vms-service-data-upload
批量新增系统漏洞-资产纬度分区表(系统漏洞集合)insertSystemAssetVul
指令编码重复
orderId
系统漏洞是否存在
asset-vms-vulnerability-management
AbstractDataUploadTaskInstruction
return null
请求
加载 初始化
DataUploadInfoEventListener: this.dataUploadInfoMapper.insertOrUpdateBatch(Lists.newArrayList(data)); this.dataUploadInfoMapper.insertOrUpdateDetail(data);
monitorExit
s.getVulnerabilityId()_s.getAssetId()
excel文件上传漏洞ID字段(vulID)
handler
开始
notifyCompleteTaskEvent{ applicationContext.publishEvent(DataUploadTaskEvent)}
按流程1的方法同一级追溯
发kafaka消息
流程1 和流程2 在同一个类中执行,整个流程是从子类开始,有this调用则在同类中调用,没有this则向父类调用,一直追溯到Object类。这期间首先给类成员变量进行默认初始化,然后初始化构造方法的参数。追溯到Object类以后,从父类开始执行显示初始化成员变量,然后执行构造方法中的其他代码,一直回溯到当前类。
数据类
systemVulFace.insertSystemVulBulk(sysVuls);
漏洞信息vulnerability_info
1、单独一个组件,可以独立出来2、直接界面化的细粒度统一配置
buildOrderInfo
工单详情保存order_detail
各自参数校验
miit_code as vulID
有
buildSuccessResult(results.get(CommonConstant.NUM_0).getPath()
公共参数校验
asset-vms-task
statWorkOrderMapper.insert
通知
vms_data_upload_infovms_data_upload_info_detail
JVM
高可用Mysql集群
...
失败
vmsOrderInfoMapper.WorkOrderStat
k.setKey
一直追溯Object类
更新工单信息VulInfoOrderImport
系统当前时间 - 页面执行间隔周期(7day)
类加载器Class Loader
stu1
进入队列
监听DataUploadTaskEvent事件DataSubmitTaskListeneronApplicationEvent
获取漏洞idvulnerabilityMapper.selectByMiitCodes(miitCodes)
checkImportData
Nginx02
工信部
VulInfoOrderImport
监听保存upload_info
流程2
发布事件保存upload_info
结束
vulIdMap.get(o.getVulId())
insert into order_detail
栈
List orderDetailImports
String lclVulId = vulIdMap.get(o.getVulId());String lclAssetId = o.getAssetLclId();
R result
getClass()
产品漏洞验证工单响应
start()
1、生成任务数据并保存
exxcel 0
return error
orderID
判断系统漏洞是否存在keyValueDos
vms_stat_work_order.insert(localTotal)
exxcel 1
本地漏洞IDlclVulId
vulID
类的引用
stu2
keyValueDos
List<SystemVulDo> needInsertSysVuls = Lists.newArrayList();needInsertSysVuls.add(sysVul);
lclAssetId
产品漏洞验证工单请求
null
List<VmsOrderDetail> needInsertOrderDetails
成功
任务结果数据保存vms_stat_work_order.insertOrUpdateBatch(List<StatWorkOrder>)
执行代码块
StatOrderReqParams
通知后线程2
vms_stat_work_order.getByTaskIds(taskId)
1、需要我们程序员自己动手搭建监控平台2、没有一套web界面可以给我们进行更加细粒度化的配置流控、速率控制、服务熔断、服务降级。。。。。。
Nacos02
dataUploadInfoMapper.getByOrderIdAndType()
dataSubmit.fileDataSubmit(context)
vms_stat_work_order.statWorkOrderMapper.getByOrderId(orderId)
Student 实例
2、发布任务结果时间通知
1 类成员变量默认初始化
DataUploadInfoEventListener: this.dataUploadInfoMapper.insertOrUpdateBatch(Lists.newArrayList(data)); this.dataUploadInfoMapper.insertOrUpdateDetail(data);
monitorEnter
根据本地资产id+本地漏洞id查询系统漏洞信息mapper.getSysVulByAssetIdAndVulId(keyList)
资产漏洞信息bt_asset_vulnerability_info
upload()
QPS相当于去银行办理业务,一秒之内只能进去一个,其他直接返回失败线程数是指来银行办理业务都可以进来,但是只能等着,等不到就返回失败
submit()
TASK
orderInfMapper.insertSelective
new VmsOrderDetail()
asset-service-asset
Student.java
result
构建新工单OrderInf orderInf =buildOrderInf(req)
系统漏洞验证工单响应
select * from asset_info a join (select jsonb_array_elements_text('[${assetIdStr}]') as id ) c on a.id=c.id
getClassLoader()
堆
orderDetailMapper.insertBatch(needInsertOrderDetails);
Sentinel
线程1
insert into bt_vulnerability_asset_info
获取上报的数据R data = this.getData(orderId);
return needInsertSysVuls;
stu3
监视器(monitor)计数器 +1
orderDetailImports
约定 > 配置 > 编码
SynchronizedQueue
d -> d.getAssetLclId()).collect(Collectors.toList())
new 关键字实例化
按流程1的方法同级追溯
QPS
父类流程
Nacos01
receiveOrder()
this.taskDataSubmit(DataSubmitContext);
收藏
收藏
0 条评论
下一页
为你推荐
查看更多