一、编译打包
- Fork [DongTai-agent-java][0] 项目到自己的github仓库
2.将项目 clone 到本地
3.更改配置文件“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 // 是否查看新生成的字节码文件
2.将 dongtai-servlet.jar、iast-core.jar、iast-inject.jar 三个 jar 包导入项目依赖
三、Debug
-
在刚刚依赖的三个 jar 包中打断点,以 com.secnium.iast.core.report.ReportSender.send() 为例,此方法用来向云端发送请求。
2.Debug 模式启动测试项目,可以看到断点已经生效了
四、自定义 agent
- 根据您的需求提交 issue
- 更改 [DongTai-agent-java][0] 的代码
- 重复以上步骤, Debug 可用于功能测试
- 提交代码