期望是和burp suite一样, 允许用户可以使用python ruby java scala等语言来设计插件.
目前项目内的插件分两种插件. 一种是框架自带的插件. 比如tagLimit log插件等, 只需要在配置文件中直接写上插件的名字即可调用.
还有一种插件是动态插件. 在项目的plugins目录下有一个demo插件可以参考.
动态插件是存在与plugins目录下, 在运行时会把目录内的scala文件自动编译为class文件并加载进来. 所以可以随时修改里面的scala文件来做自定义的插件.
动态插件的示例
import com.testerhome.appcrawler._
//继承Plugin类
class DynamicPlugin extends Plugin{
//重载start方法, 启动时执行
override def start(): Unit ={
log.info("hello from seveniruby")
}
//在每个element的动作执行前进行针对性的处理. 比如跳过
override def beforeElementAction(element: UrlElement): Unit ={
log.info("you can add some logic in here")
log.info(element)
}
//当进入新页面会回调此接口
override def afterUrlRefresh(url:String): Unit ={
log.info(s"url=${getCrawler().url}")
}
}
更多方法可参考Plugin类的接口定义.