Apisix 自定义插件-提取请求体action并设置到请求头中
local core = require("apisix.core")
local ngx = ngx
local plugin = require("apisix.plugin")
local ngx_re = require("ngx.re")
local schema = {
type = "object",
}
local plugin_name = "sh-add-header"
local _M = {
version = 0.1,
priority = 29999,
name = plugin_name,
schema = schema,
}
function _M.access(conf, ctx)
-- print log
ngx.req.read_body()
local body = ngx.req.get_body_data()
local m, err = ngx.re.match(ngx.re.gsub(body, "\"", ""), "(action: )([0-9]+)")
if m then
ngx.req.set_header("http_actions", m[2])
end
end
function _M.log(conf, ctx)
local headers = ngx.req.get_headers()
core.log.warn("headers: ", core.json.encode(headers))
end
return _M