一、编译打包
- Fork DongTai-agent-java 项目到自己的github仓库

- 将项目 clone 到本地

- 更改配置文件“iast-agent/src/main/resources/iast.properties”。将 iast.server.url 改为 https://iast.huoxian.cn,iast.server.token改为洞态IAST用户token。

iast.server.url=https://iast.huoxian.cn
iast.server.token=
进入项目根目录,使用 maven 进行打包
& mvn clean package -Dmaven.test.skip=true
注:jdk 版本为1.8。
打包结束后项目根目录下会生成文件夹 release,其目录结构:
release
├── iast-agent.jar
└── lib
├── dongtai-servlet.jar
├── iast-core.jar
└── iast-inject.jar
将 dongtai-servlet.jar、iast-core.jar、iast-inject.jar 三个 jar 包复制到系统临时目录。获取系统临时目录可运行以下 Java 代码:
System.getProperty("java.io.tmpdir");
二、配置测试项目的运行参数
- 使用 IDEA 打开测试项目,并且配置项目的运行参数

**VM参数详细:**(只需更改 -javaagent 和 -Dproject.name)
-javaagent:/path/to/agent.jar // agent目录,官网下载
-Diast.server.mode=local // 引擎启动模式(local/remote)
-Diast.engine.delay.time=1 // 引擎延时启动时间(秒)
-Dproject.name=projectName // 项目名
-Dlog.level=info // 日志打印等级
-Ddebug=true // debug
-Diast.dump.class.enable=false // 是否查看新生成的字节码文件
- 将 dongtai-servlet.jar、iast-core.jar、iast-inject.jar 三个 jar 包导入项目依赖


三、Debug
- 在刚刚依赖的三个 jar 包中打断点,以 com.secnium.iast.core.report.ReportSender.send() 为例,此方法用来向云端发送请求。

- Debug 模式启动测试项目,可以看到断点已经生效了。

四、自定义 agent
- 根据您的需求提交 issue
- 更改 DongTai-agent-java 的代码
- 重复以上步骤, Debug 可用于功能测试
- 提交代码