This is an automated email from the ASF dual-hosted git repository.

spacewander pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
     new db5813f  fix(logger): remove incorrect item type of include req/resp 
body expr (#5886)
db5813f is described below

commit db5813ff9ac2e77960af6c6ac3072eccee2057c7
Author: tzssangglass <[email protected]>
AuthorDate: Mon Dec 27 15:42:40 2021 +0800

    fix(logger): remove incorrect item type of include req/resp body expr 
(#5886)
---
 apisix/plugins/http-logger.lua     |   5 +-
 apisix/plugins/kafka-logger.lua    |  10 +---
 apisix/plugins/rocketmq-logger.lua |  10 +---
 t/plugin/http-logger-log-format.t  |  28 ++++++++++
 t/plugin/kafka-logger2.t           | 106 +++++++++++++++++++++++++++++++++++++
 t/plugin/rocketmq-logger2.t        |  33 ++++++++++++
 6 files changed, 172 insertions(+), 20 deletions(-)

diff --git a/apisix/plugins/http-logger.lua b/apisix/plugins/http-logger.lua
index d796eea..e4e403c 100644
--- a/apisix/plugins/http-logger.lua
+++ b/apisix/plugins/http-logger.lua
@@ -41,10 +41,7 @@ local schema = {
             type = "array",
             minItems = 1,
             items = {
-                type = "array",
-                items = {
-                    type = "string"
-                }
+                type = "array"
             }
         },
         concat_method = {type = "string", default = "json",
diff --git a/apisix/plugins/kafka-logger.lua b/apisix/plugins/kafka-logger.lua
index 5b6e903..2947d14 100644
--- a/apisix/plugins/kafka-logger.lua
+++ b/apisix/plugins/kafka-logger.lua
@@ -69,10 +69,7 @@ local schema = {
             type = "array",
             minItems = 1,
             items = {
-                type = "array",
-                items = {
-                    type = "string"
-                }
+                type = "array"
             }
         },
         include_resp_body = {type = "boolean", default = false},
@@ -80,10 +77,7 @@ local schema = {
             type = "array",
             minItems = 1,
             items = {
-                type = "array",
-                items = {
-                    type = "string"
-                }
+                type = "array"
             }
         },
         -- in lua-resty-kafka, cluster_name is defined as number
diff --git a/apisix/plugins/rocketmq-logger.lua 
b/apisix/plugins/rocketmq-logger.lua
index 247c848..447960b 100644
--- a/apisix/plugins/rocketmq-logger.lua
+++ b/apisix/plugins/rocketmq-logger.lua
@@ -57,10 +57,7 @@ local schema = {
             type = "array",
             minItems = 1,
             items = {
-                type = "array",
-                items = {
-                    type = "string"
-                }
+                type = "array"
             }
         },
         include_resp_body = {type = "boolean", default = false},
@@ -68,10 +65,7 @@ local schema = {
             type = "array",
             minItems = 1,
             items = {
-                type = "array",
-                items = {
-                    type = "string"
-                }
+                type = "array"
             }
         },
     },
diff --git a/t/plugin/http-logger-log-format.t 
b/t/plugin/http-logger-log-format.t
index 07978f5..a9d05b2 100644
--- a/t/plugin/http-logger-log-format.t
+++ b/t/plugin/http-logger-log-format.t
@@ -433,3 +433,31 @@ qr/request log: \{.+\}/
 --- grep_error_log_out eval
 
qr/\Q{"client_ip":"127.0.0.1","consumer":{"username":"jack"},"latency":\E[^,]+\Q,"request":{"headers":{"apikey":"auth-one","connection":"close","host":"localhost"},"method":"GET","querystring":{},"size":\E\d+\Q,"uri":"\/hello","url":"http:\/\/localhost:1984\/hello"},"response":{"headers":{"connection":"close","content-length":"\E\d+\Q","content-type":"text\/plain","server":"\E[^"]+\Q"},"size":\E\d+\Q,"status":200},"route_id":"1","server":{"hostname":"\E[^"]+\Q","version":"\E[^"]+\Q"},"se
 [...]
 --- wait: 0.5
+
+
+
+=== TEST 14: multi level nested expr conditions
+--- config
+    location /t {
+        content_by_lua_block {
+            local plugin = require("apisix.plugins.http-logger")
+            local ok, err = plugin.check_schema({
+                 uri = "http://127.0.0.1";,
+                 include_resp_body = true,
+                 include_resp_body_expr = {
+                    {"http_content_length", "<", 1024},
+                    {"http_content_type", "in", {"application/xml", 
"application/json", "text/plain", "text/xml"}}
+                 }
+            })
+            if not ok then
+                ngx.say(err)
+            end
+            ngx.say("done")
+        }
+    }
+--- request
+GET /t
+--- response_body
+done
+--- no_error_log
+[error]
diff --git a/t/plugin/kafka-logger2.t b/t/plugin/kafka-logger2.t
index 73ffec5..c78da6f 100644
--- a/t/plugin/kafka-logger2.t
+++ b/t/plugin/kafka-logger2.t
@@ -609,3 +609,109 @@ hello world
 --- no_error_log eval
 qr/send data to kafka: \{.*"body":"hello world\\n"/
 --- wait: 2
+
+
+
+=== TEST 15: multi level nested expr conditions
+--- config
+    location /t {
+        content_by_lua_block {
+            local core = require("apisix.core")
+            local t = require("lib.test_admin").test
+            local kafka = {
+                 kafka_topic = "test2",
+                 key = "key1",
+                 batch_max_size = 1,
+                 broker_list = {
+                    ["127.0.0.1"] = 9092
+                 },
+                 timeout = 3,
+                 include_req_body = true,
+                 include_req_body_expr = {
+                    {"request_length", "<", 1054},
+                    {"arg_name", "in", {"qwerty", "asdfgh"}}
+                 },
+                 include_resp_body = true,
+                 include_resp_body_expr = {
+                    {"http_content_length", "<", 1054},
+                    {"arg_name", "in", {"qwerty", "zxcvbn"}}
+                 }
+            }
+            local plugins = {}
+            plugins["kafka-logger"] = kafka
+            local data = {
+                plugins = plugins
+            }
+            data.upstream = {
+                type = "roundrobin",
+                nodes = {
+                    ["127.0.0.1:1980"] = 1
+                }
+            }
+            data.uri = "/hello"
+            local code, body = t('/apisix/admin/routes/1',
+                 ngx.HTTP_PUT,
+                 core.json.encode(data)
+            )
+            if code >= 300 then
+                ngx.status = code
+            end
+            ngx.say(body)
+        }
+    }
+--- response_body
+passed
+
+
+
+=== TEST 16: hit route, req_body_expr and resp_body_expr both eval success
+--- request
+POST /hello?name=qwerty
+abcdef
+--- response_body
+hello world
+--- error_log eval
+[qr/send data to kafka: \{.*"body":"abcdef"/,
+qr/send data to kafka: \{.*"body":"hello world\\n"/]
+--- wait: 2
+
+
+
+=== TEST 17: hit route, req_body_expr eval success, resp_body_expr both eval 
failed
+--- request
+POST /hello?name=asdfgh
+abcdef
+--- response_body
+hello world
+--- error_log eval
+qr/send data to kafka: \{.*"body":"abcdef"/
+--- no_error_log eval
+qr/send data to kafka: \{.*"body":"hello world\\n"/
+--- wait: 2
+
+
+
+=== TEST 18: hit route, req_body_expr eval failed, resp_body_expr both eval 
success
+--- request
+POST /hello?name=zxcvbn
+abcdef
+--- response_body
+hello world
+--- error_log eval
+qr/send data to kafka: \{.*"body":"hello world\\n"/
+--- no_error_log eval
+qr/send data to kafka: \{.*"body":"abcdef"/
+--- wait: 2
+
+
+
+=== TEST 19: hit route, req_body_expr eval success, resp_body_expr both eval 
failed
+--- request
+POST /hello?name=xxxxxx
+abcdef
+--- response_body
+hello world
+--- no_error_log eval
+[qr/send data to kafka: \{.*"body":"abcdef"/,
+qr/send data to kafka: \{.*"body":"hello world\\n"/]
+--- wait: 2
diff --git a/t/plugin/rocketmq-logger2.t b/t/plugin/rocketmq-logger2.t
index fcc378b..286d3ca 100644
--- a/t/plugin/rocketmq-logger2.t
+++ b/t/plugin/rocketmq-logger2.t
@@ -412,3 +412,36 @@ hello world
 --- no_error_log eval
 qr/send data to rocketmq: \{.*"body":"hello world\\n"/
 --- wait: 2
+
+
+
+=== TEST 13: multi level nested expr conditions
+--- config
+    location /t {
+        content_by_lua_block {
+            local plugin = require("apisix.plugins.rocketmq-logger")
+            local ok, err = plugin.check_schema({
+                 topic = "test",
+                 key = "key1",
+                 nameserver_list = {
+                    "127.0.0.1:3"
+                 },
+                 include_req_body = true,
+                 include_req_body_expr = {
+                    {"request_length", "<", 1024},
+                    {"http_content_type", "in", {"application/xml", 
"application/json", "text/plain", "text/xml"}}
+                 },
+                 include_resp_body = true,
+                 include_resp_body_expr = {
+                    {"http_content_length", "<", 1024},
+                    {"http_content_type", "in", {"application/xml", 
"application/json", "text/plain", "text/xml"}}
+                 }
+            })
+            if not ok then
+                ngx.say(err)
+            end
+            ngx.say("done")
+        }
+    }
+--- response_body
+done

Reply via email to