adnanh webhook 框架request values 说明
request values 在adnanh webhook 是比较重要的,规则触发以及命令参数传递都是通过它
支持的request values 类似
- http header
- 查询参数
- playload(json 或者表单字段)(同时支持jsonpath)
- 传递playload 的json 字符串(header ,query ,payload)
说明:
参数同时可以作为环境变量传递
以下为参考
环境准备
docker-compose 运行git https://github.com/rongfengliang/adnanh-webhook-docker-compose
- docker-compose
version: "3"
services:
webhook:
image: almir/webhook
command: ["-verbose", "-hooks=/etc/webhook/hooks.json","-hotreload"]
volumes:
- "./hooks.json:/etc/webhook/hooks.json"
- "./shell/:/shells/"
ports:
- "9000:9000"
- hooks json
[
{
"id": "simple-one",
"execute-command": "/shells/app",
"include-command-output-in-response":true,
"include-command-output-in-response-on-error":true,
"command-working-directory":"/shells",
"pass-arguments-to-command":
[
{
// playload 使用
"source": "payload",
"name": "id"
},
// 查询字符串
{
"source": "url",
"name": "token"
},
// header
{
"source":"header",
"name":"token"
},
//
{
"source": "payload",
"name": "users.0.id"
},
// 环境变量
{
"source": "url",
"name": "token",
"envname": "MY_TOKEN"
},
// playload json 字符串
{
"source": "entire-payload",
"name":"all-json"
},
// header json 字符串
{
"source": "entire-headers",
"name":"all-header"
},
// 查询参数json 字符串
{
"source": "entire-query",
"name":"all-query"
}
],
"trigger-rule":
{
"match":
{
"type": "value",
"value": "42",
"parameter":
{
"source": "url",
"name": "token"
}
}
}
}
]
- shell command 文件
#!/bin/sh
echo $@ , $1, $2
header
- 配置
单一值:
{
"source":"header",
"name":"token"
}
header json 字符串:
{
"source": "entire-headers",
"name":"all-header"
}
url
- 配置
单一值:
{
"source": "url",
"name": "token"
}
json 字符串
{
"source": "entire-query",
"name":"all-query"
}
playload
- 配置
单一值:
{
"source": "payload",
"name": "id"
}
jsonpath:
{
"source": "payload",
"name": "users.0.id"
}
json 字符串
{
"source": "entire-payload",
"name":"all-json"
}
运行测试
- curl 代码
curl -X POST \
'http://localhost:9000/hooks/simple-one?token=42&name=demoapp&mytoken=%E8%8D%A3' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: 2248c162-de61-562d-23c0-3e7d60445785' \
-H 'token: demoapp' \
-d '{
"id":"荣锋亮",
"users":[
{
"name":"demoapp",
"id":555555
}
]
}'
- 结果
HOSTNAME=b4addd3279c7
SHLVL=1
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/shells
荣锋亮 42 demoapp 555555 荣 {"id":"荣锋亮","users":[{"id":555555,"name":"demoapp"}]} {"Accept":"*/*","Cache-Control":"no-cache","Content-Length":"87","Content-Type":"application/json","Postman-Token":"2248c162-de61-562d-23c0-3e7d60445785","Token":"demoapp","User-Agent":"curl/7.54.0"} {"mytoken":"荣","name":"demoapp","token":"42"} , 荣锋亮, 42
问题
当前测试环境变量是有点问题的,待确定原因
参考资料
https://github.com/rongfengliang/adnanh-webhook-docker-compose
https://github.com/adnanh/webhook/blob/master/docs/Referencing-Request-Values.md
adnanh webhook 框架request values 说明的更多相关文章
- adnanh webhook 框架execute-command 以及参数传递处理
adnanh webhook是一个很不错的webhook 实现,方便灵活. adnanh webhook 支持以下功能: 接收请求 解析header 以及负载以及查询变量 规则检查 执行命令 下面 ...
- adnanh webhook 框架 hook rule
adnanh webhook 支持一系列的逻辑操作 AND 所有的条件都必须匹配 { "and": [ { "match": { "type" ...
- adnanh webhook 框架使用
adnanh webhook 支持以下功能: 接收请求 解析header 以及负载以及查询变量 规则检查 执行命令 简单测试 使用docker-compose docker-compose 文件 ve ...
- adnanh webhook 框架 hook 定义
Hook hook 是一个SON对象.钩子对象必须包含id和execute-command属性.所有其他属性都被视为可选. 属性 id - 指定hook的ID.方式格式(http://server:p ...
- JSF教程(8)——生命周期之Apply Request Values Phase
当一个组件树在一个postbacks请求中被恢复之后其中每一个组件从request的參数中取得各自的值,这里使用的是processDecodes方法. 这个值会保存在本地的每一个组件中,在源代码中此过 ...
- nodejs的express框架(request,response方法汇总)
Response 对象 - response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据.常见属性有: res.app:同req.app一样 res.append() ...
- Scrapy框架: Request回调函数
Request回调函数 def parse_page1(self, response): return scrapy.Request("http://www.example.com/some ...
- scrapy框架Request函数callback参数为什么是self.parse而不是self.parse( )
加括号是调用函数,不加括号是指的是函数地址,此处只需要传入函数的地址,等待程序到时调用即可
- Python之路【第二十篇】其他WEB框架
WEB框架功能分析 WEB框架本质上,就是一个SOCKET Server WEB框架前面有WSGI或者是自己写的SOCKET,然后交给URL路由系统处理,然后交给某个函数或某个类,然后在模板里拿到模板 ...
随机推荐
- LeetCode--217--存在重复元素
问题描述: 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出 ...
- LeetCode--058--最后一个单词的长度
问题描述 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例: 输入: ...
- pandas的concat函数和append方法
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, nam ...
- h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
最近看了下h5+规范的官网,开始觉得晦涩难懂,确实很乱,不过这也是基于我不理解的情况,终于艰难读完了,现在来分享下心得吧,基本看完文章,按我的方法,应该可以直接上手项目. 我准备的工具 hbuilde ...
- 对LOV中的值进行强制验证
当LOV之中只有一个LovMap返回当前ITEM时,修改了LOV输入框的值,会弹出验证窗口,若此时忽略此窗口,在进行下一步的时候不会去验证此LOV中的值是否一定在可选列表中. 解决方式, 1.在页面加 ...
- Java中List的排序方法
方法一:实现Comparable接口 package com.java.test; public class Person implements Comparable<Person> { ...
- SQL Server 调优系列基础篇 - 常用运算符总结
前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL ...
- 传递数据后创建后台service来处理事件!
package com.lixu.service; import android.app.Service; import android.content.Intent; import android. ...
- 扫描系统句柄表(WIN7 x86)(附录源码)
PspCidTable存放着系统中所有的进程和线程对象,其索引也就是进程ID(PID)或线程ID(TID).先通过它来看看windbg里的HANDLE_TABLE结构: 可以看到地址 0x83f41b ...
- L1-023 输出GPLT
给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符.当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字 ...