Skip to content

Commit 5aa79c1

Browse files
committed
Add test cases for m.setvar in Lua scripts
1 parent 6f458b5 commit 5aa79c1

File tree

3 files changed

+265
-0
lines changed

3 files changed

+265
-0
lines changed

Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ TESTS+=test/test-cases/regression/variable-ARGS.json
131131
TESTS+=test/test-cases/regression/variable-ARGS_POST_NAMES.json
132132
TESTS+=test/test-cases/regression/config-remove_by_tag.json
133133
TESTS+=test/test-cases/regression/collection-regular_expression_selection.json
134+
TESTS+=test/test-cases/regression/collection-lua.json
134135
TESTS+=test/test-cases/regression/issue-960.json
135136
TESTS+=test/test-cases/regression/variable-WEBAPPID.json
136137
TESTS+=test/test-cases/regression/variable-ARGS_GET_NAMES.json

test/test-cases/data/setvar.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function main()
2+
var = 2;
3+
m.setvar("TX.lua_set_var", var);
4+
m.setvar("IP.lua_set_var", var);
5+
m.setvar("GLOBAL.lua_set_var", var);
6+
m.setvar("RESOURCE.lua_set_var", var);
7+
m.setvar("SESSION.lua_set_var", var);
8+
m.setvar("USER.lua_set_var", var);
9+
return nil;
10+
end
Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
[
2+
{
3+
"enabled":1,
4+
"version_min":300000,
5+
"title":"Testing LUA :: m.set TX (1/6)",
6+
"resource":"lua",
7+
"client":{
8+
"ip":"200.249.12.31",
9+
"port":123
10+
},
11+
"server":{
12+
"ip":"200.249.12.31",
13+
"port":80
14+
},
15+
"request":{
16+
"headers":{
17+
"Host":"localhost",
18+
"User-Agent":"My sweet little browser",
19+
"Accept":"*/*",
20+
"Content-Length": "0"
21+
},
22+
"uri":"/whee?res=1",
23+
"method":"GET",
24+
"body": [ ]
25+
},
26+
"response":{
27+
"headers":{},
28+
"body":[
29+
"no need."
30+
]
31+
},
32+
"expected":{
33+
"audit_log":"",
34+
"debug_log":"Target value: \"2\" \\(Variable: TX.lua_set_var\\)",
35+
"error_log":""
36+
},
37+
"rules":[
38+
"SecRuleEngine On",
39+
"SecAction \"id:1,pass,setvar:TX.lua_set_var=1\"",
40+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
41+
"SecRule TX.lua_set_var \"@contains 2\" \"id:3,t:none\""
42+
]
43+
},
44+
{
45+
"enabled":1,
46+
"version_min":300000,
47+
"title":"Testing LUA :: m.set IP (2/6)",
48+
"resource":"lua",
49+
"client":{
50+
"ip":"200.249.12.31",
51+
"port":123
52+
},
53+
"server":{
54+
"ip":"200.249.12.31",
55+
"port":80
56+
},
57+
"request":{
58+
"headers":{
59+
"Host":"localhost",
60+
"User-Agent":"My sweet little browser",
61+
"Accept":"*/*",
62+
"Content-Length": "0"
63+
},
64+
"uri":"/whee?res=1",
65+
"method":"GET",
66+
"body": [ ]
67+
},
68+
"response":{
69+
"headers":{},
70+
"body":[
71+
"no need."
72+
]
73+
},
74+
"expected":{
75+
"audit_log":"",
76+
"debug_log":"Target value: \"2\" \\(Variable: IP:::::lua_set_var\\)",
77+
"error_log":""
78+
},
79+
"rules":[
80+
"SecRuleEngine On",
81+
"SecAction \"id:1,pass,setvar:IP.lua_set_var=1\"",
82+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
83+
"SecRule IP.lua_set_var \"@contains 2\" \"id:3,t:none\""
84+
]
85+
},
86+
{
87+
"enabled":1,
88+
"version_min":300000,
89+
"title":"Testing LUA :: m.set GLOBAL (3/6)",
90+
"resource":"lua",
91+
"client":{
92+
"ip":"200.249.12.31",
93+
"port":123
94+
},
95+
"server":{
96+
"ip":"200.249.12.31",
97+
"port":80
98+
},
99+
"request":{
100+
"headers":{
101+
"Host":"localhost",
102+
"User-Agent":"My sweet little browser",
103+
"Accept":"*/*",
104+
"Content-Length": "0"
105+
},
106+
"uri":"/whee?res=1",
107+
"method":"GET",
108+
"body": [ ]
109+
},
110+
"response":{
111+
"headers":{},
112+
"body":[
113+
"no need."
114+
]
115+
},
116+
"expected":{
117+
"audit_log":"",
118+
"debug_log":"Target value: \"2\" \\(Variable: GLOBAL:::::lua_set_var\\)",
119+
"error_log":""
120+
},
121+
"rules":[
122+
"SecRuleEngine On",
123+
"SecAction \"id:1,pass,setvar:GLOBAL.lua_set_var=1\"",
124+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
125+
"SecRule GLOBAL.lua_set_var \"@contains 2\" \"id:3,t:none\""
126+
]
127+
},
128+
{
129+
"enabled":1,
130+
"version_min":300000,
131+
"title":"Testing LUA :: m.set RESOURCE (4/6)",
132+
"resource":"lua",
133+
"client":{
134+
"ip":"200.249.12.31",
135+
"port":123
136+
},
137+
"server":{
138+
"ip":"200.249.12.31",
139+
"port":80
140+
},
141+
"request":{
142+
"headers":{
143+
"Host":"localhost",
144+
"User-Agent":"My sweet little browser",
145+
"Accept":"*/*",
146+
"Content-Length": "0"
147+
},
148+
"uri":"/whee?res=1",
149+
"method":"GET",
150+
"body": [ ]
151+
},
152+
"response":{
153+
"headers":{},
154+
"body":[
155+
"no need."
156+
]
157+
},
158+
"expected":{
159+
"audit_log":"",
160+
"debug_log":"Target value: \"2\" \\(Variable: RESOURCE:::::lua_set_var\\)",
161+
"error_log":""
162+
},
163+
"rules":[
164+
"SecRuleEngine On",
165+
"SecAction \"id:1,pass,setvar:RESOURCE.lua_set_var=1\"",
166+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
167+
"SecRule RESOURCE.lua_set_var \"@contains 2\" \"id:3,t:none\""
168+
]
169+
},
170+
{
171+
"enabled":1,
172+
"version_min":300000,
173+
"title":"Testing LUA :: m.set SESSION (5/6)",
174+
"resource":"lua",
175+
"client":{
176+
"ip":"200.249.12.31",
177+
"port":123
178+
},
179+
"server":{
180+
"ip":"200.249.12.31",
181+
"port":80
182+
},
183+
"request":{
184+
"headers":{
185+
"Host":"localhost",
186+
"User-Agent":"My sweet little browser",
187+
"Accept":"*/*",
188+
"Content-Length": "0"
189+
},
190+
"uri":"/whee?res=1",
191+
"method":"GET",
192+
"body": [ ]
193+
},
194+
"response":{
195+
"headers":{},
196+
"body":[
197+
"no need."
198+
]
199+
},
200+
"expected":{
201+
"audit_log":"",
202+
"debug_log":"Target value: \"2\" \\(Variable: SESSION:::::lua_set_var\\)",
203+
"error_log":""
204+
},
205+
"rules":[
206+
"SecRuleEngine On",
207+
"SecAction \"id:1,pass,setvar:SESSION.lua_set_var=1\"",
208+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
209+
"SecRule SESSION.lua_set_var \"@contains 2\" \"id:3,t:none\""
210+
]
211+
},
212+
{
213+
"enabled":1,
214+
"version_min":300000,
215+
"title":"Testing LUA :: m.set USER (6/6)",
216+
"resource":"lua",
217+
"client":{
218+
"ip":"200.249.12.31",
219+
"port":123
220+
},
221+
"server":{
222+
"ip":"200.249.12.31",
223+
"port":80
224+
},
225+
"request":{
226+
"headers":{
227+
"Host":"localhost",
228+
"User-Agent":"My sweet little browser",
229+
"Accept":"*/*",
230+
"Content-Length": "0"
231+
},
232+
"uri":"/whee?res=1",
233+
"method":"GET",
234+
"body": [ ]
235+
},
236+
"response":{
237+
"headers":{},
238+
"body":[
239+
"no need."
240+
]
241+
},
242+
"expected":{
243+
"audit_log":"",
244+
"debug_log":"Target value: \"2\" \\(Variable: USER:::::lua_set_var\\)",
245+
"error_log":""
246+
},
247+
"rules":[
248+
"SecRuleEngine On",
249+
"SecAction \"id:1,pass,setvar:USER.lua_set_var=1\"",
250+
"SecRuleScript test-cases/data/setvar.lua \"id:2,pass\"",
251+
"SecRule USER.lua_set_var \"@contains 2\" \"id:3,t:none\""
252+
]
253+
}
254+
]

0 commit comments

Comments
 (0)