refactor: 引入 ScanSession,替代全局状态穿透扫描管道 (Phase 1-3)

- 新增 common/session.go: ScanSession 结构体封装 Config/State/Params/Dialer
- RunScan/Strategy/ExecuteScanTasks/executeScanTask 全部接收 session
- Plugin 接口从 Scan(ctx, info, config, state) 改为 Scan(ctx, info, session)
- 48 个插件实现统一更新签名
- Web API 构建 ScanSession 传给 RunScan
- CLI 模式通过 Initialize() 创建 session
This commit is contained in:
ZacharyZcR
2026-04-27 23:00:06 +08:00
parent 3d7cdcbe5f
commit a865e5d45e
62 changed files with 283 additions and 89 deletions
+10 -6
View File
@@ -13,9 +13,10 @@ initialize.go - 统一初始化入口
// InitResult 初始化结果
type InitResult struct {
Config *Config
State *State
Info *HostInfo
Config *Config
State *State
Info *HostInfo
Session *ScanSession
}
// Initialize 统一初始化函数
@@ -39,10 +40,13 @@ func Initialize(info *HostInfo) (*InitResult, error) {
return nil, fmt.Errorf("输出初始化失败: %w", err)
}
session := NewScanSession(cfg, state, GetFlagVars())
return &InitResult{
Config: cfg,
State: state,
Info: info,
Config: cfg,
State: state,
Info: info,
Session: session,
}, nil
}