dependency-track 初始化源码解析
因項目的關鍵因素,需查看dependency-check源碼流程。個人學習用。自己讀代碼可以根據web.xml的幾個listener來debug。
1、org.dependencytrack.RequirementsVerifier 校驗java版本,內存等運行時環境。
2、org.dependencytrack.upgrade.UpgradeInitializer作用 create 數據庫并生成表結構,并將db文件放置在指定或者默認的目錄下,默認的目錄(~/.dependency-track),然后檢驗當前機器H2數據庫的版本,根據不同的版本進行升級操作。
3、org.dependencytrack.event.EventSubsystemInitializer 為不同的事件注冊不同的定時器,然后初始化org.dependencytrack.tasks.TaskScheduler,定義調用頻率和延遲時間后執行若干個event。
4、org.dependencytrack.persistence.DefaultObjectGenerator,執行IndexEvent,NistEvent等,在服務器的bin目錄下生成~/.dependency-track/index文件夾,并下載生成對應文件。
然后初始化H2默認數據(Permissions,Personas(用戶密碼和team,admin,admin),License(遍歷解析resources目錄下的license-list-data.json的details目錄和exception目錄),Repositories(一些庫的url等配置信息),NotificationPublisher(模板格式),ConfigProperties(代碼中的常量配置信息),解析resources/nist/cwec_v3.3.xml,并將解析的cwe信息(共1188條)保存(cweId和name))
?
Task解析:
NistMirrorTask : 下載cve.json到服務器的默認nist目錄下
MetricsUpdateTask :
1、更新project的Metric信息,比如組件的數量,license的數量等(1小時1次)
2、更新Vulnerabilities的Metric信息,按年月日統計的Vulnerabilities的數量等(1小時1次)
?
VulnerabilityAnalysisTask :
1、更新漏洞信息,來源cpe,Npm,Oss,VulnDb(6小時1次)
總結
以上是生活随笔為你收集整理的dependency-track 初始化源码解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】os模块 递归删除文件夹
- 下一篇: 在启动HDFS时,针对集群中nameno