Open Sn0rt opened 11 months ago
啊,稍等我更新一下最新代码
啊,稍等我更新一下最新代码
目前这个插件不能正常工作.
我更新了openresty 插件,您看看,apisix只是一个封装
两个都更新了,不好意思啊
我看你的代码和测试发现匹配不上
local schema = {
type = "object",
properties = {
mode = {
type = "string",
default = "block",
enum = {"block", "monitor"},
description = "waf running at block mode or monitor mode."
},
}
}
测试里面多了一个 host 字段.
host字段?
=== TEST 1: sanity
--- config
location /t {
content_by_lua_block {
local test_cases = {
{host = "http://127.0.0.1:8181", policy = "example/allow"},
{host = "http://127.0.0.1:8181"},
{host = 3233, policy = "example/allow"},
}
local plugin = require("apisix.plugins.apisix-coraza")
for _, case in ipairs(test_cases) do
local ok, err = plugin.check_schema(case)
ngx.say(ok and "done" or err)
end
}
}
--- response_body
done
property "policy" is required
property "host" validation failed: wrong type: expected string, got number
饿,host其实没完工,这个测试一直没跑起来
好的吧.
嗯嗯,有问题可以随时联系我的,我们公司上线测了一下,目前来看没啥问题
你们公司测试过这个插件能正常工作? 有文档分享么?
嗯,是的,能正常工作的,我们公司这个,类似于一个新项目,还没来得及写文档
嗯,是的,能正常工作的,我们公司这个,类似于一个新项目,还没来得及写文档
搞一个文档? 或者更新一下这个测试案例? 到目前为止我都不知道创建 router 应该传入什么参数, 全部都是根据代码分析的.
更新了代码
2023/08/08 15:02:17 [error] 629010#629010: init_worker_by_lua error: /root/apisix-coraza/apisix/plugins/apisix-coraza.lua:55: attempt to call field 'create_waf' (a nil value)
stack traceback:
/root/apisix-coraza/apisix/plugins/apisix-coraza.lua:55: in function 'init'
/usr/local/apisix/apisix/plugin.lua:182: in function 'load_plugin'
/usr/local/apisix/apisix/plugin.lua:221: in function 'load'
/usr/local/apisix/apisix/plugin.lua:340: in function 'load'
/usr/local/apisix/apisix/plugin.lua:747: in function 'init_worker'
/usr/local/apisix/apisix/init.lua:150: in function 'http_init_worker'
init_worker_by_lua:2: in main chunk
2023/08/08 15:02:17 [error] 629006#629006: init_worker_by_lua error: /usr/local/apisix/apisix/plugins/apisix-coraza.lua:59: attempt to call field 'create_waf' (a nil value)
stack traceback:
/usr/local/apisix/apisix/plugins/apisix-coraza.lua:59: in function 'init'
/usr/local/apisix/apisix/plugin.lua:182: in function 'load_plugin'
/usr/local/apisix/apisix/plugin.lua:221: in function 'load'
/usr/local/apisix/apisix/plugin.lua:340: in function 'load'
/usr/local/apisix/apisix/plugin.lua:747: in function 'init_worker'
/usr/local/apisix/apisix/init.lua:150: in function 'http_init_worker'
init_worker_by_lua:2: in main chunk
2023/08/08 15:02:17 [warn] 629010#629010: *16 [lua] config_etcd.lua:168: main etcd watcher started, revision=239, context: ngx.timer
2023/08/08 15:02:17 [warn] 629006#629006: *25 [lua] config_etcd.lua:168: main etcd watcher started, revision=239, context: ngx.timer
2023/08/08 15:02:18 [error] 629007#629007: *77 lua entry thread aborted: runtime error: /usr/local/apisix/apisix/init.lua:567: attempt to index upvalue 'local_conf' (a nil value)
stack traceback:
coroutine 0:
/usr/local/apisix/apisix/init.lua: in function 'http_access_phase'
access_by_lua(nginx.conf:338):2: in main chunk, client: 127.0.0.1, server: _, request: "GET /anything?code=%24%7BSHELL%7D%20-c%20%22echo%20hi%22 HTTP/1.1", host: "localhost:9080"
好的,那我加你吧, 有啥需求我弄下
有什么联系方式? 有邮箱么?
try to run this plugin
build test ideas
how to reproduce
install APISIX
a new ubuntu server 22.04
install APISIX
start etcd
build coraza share lib file
follow the cmdline
verify the lib file has been installed
install lua-resty-coraza
clone
potats0/lua-resty-coraza
lua libinstall it to APISIX deps
save the following content to
lua-resty-coraza-1.0.1-0.rockspec
install the lua dependency
confrim
install
apisix-coraza
plugininstall the APISIX coraza plugin
install waf rule
setting APISIX, add
conf/config.yaml
enable the plugin, and confirm
reload the APISIX
test the WAF
inject some code
update the router