Skip to content

Commit 7bec78a

Browse files
author
Felipe Zimmerle
committed
Adds support for transformations inside Lua engine
1 parent a676f31 commit 7bec78a

File tree

5 files changed

+115
-6
lines changed

5 files changed

+115
-6
lines changed

CHANGES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
v3.0.????? - ?
33
---------------------------
44

5+
- Adds support for transformations inside Lua engine
6+
[Issue #994 - @zimmerle]
57
- Adds initial support for Lua engine.
68
[Issue #994 - @zimmerle]
79
- Adds support for @inspectFile operator.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function main()
2+
ret = nil
3+
m.log(9, "Lets rock.");
4+
5+
var = m.getvar("tx.test" , { "lowercase", "uppercase" });
6+
if var == nil then
7+
m.log(9, "Don't know what to say...");
8+
return ret;
9+
end
10+
11+
if var == "FELIPE" then
12+
m.log(9, "Whee. Working like a charm. That is what we have: " .. var);
13+
elseif var == "felipe" then
14+
m.log(9, "Oh boy. Got: " .. var);
15+
ret ="ok";
16+
else
17+
m.log(9, "Really?");
18+
end
19+
20+
return "whee"
21+
end
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
function main()
22
ret = nil
3+
m.log(9, "Lets rock.");
34

4-
var = m.getvar("tx.test");
5+
var = m.getvar("tx.test" , "lowercase");
56
if var == nil then
67
m.log(9, "Don't know what to say...");
7-
return ret
8+
return ret;
89
end
910

10-
if var == "FELIPE"
11+
if var == "FELIPE" then
1112
m.log(9, "Ops.");
12-
elseif var == "felipe"
13+
elseif var == "felipe" then
1314
m.log(9, "Just fine.");
1415
ret ="ok";
1516
else
1617
m.log(9, "Really?");
1718
end
1819

19-
return ret
20+
return "whee"
2021
end
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function main()
2+
ret = nil
3+
4+
var = m.getvar("tx.test", "lowercase");
5+
6+
return ret
7+
end

test/test-cases/regression/operator-inpectFile.json

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,12 +298,90 @@
298298
]
299299
},
300300
"expected":{
301-
"debug_log":"Z: \\{ \\[1\\] = \\{ \\[\"value\"\\] = res=whee&z=z&d=e,\\[\"name\"\\] = QUERY_STRING,\\} ,\\}"
301+
"debug_log":"Z: \\{ \\[1\\] = \\{ \\[\""
302302
},
303303
"rules":[
304304
"SecRuleEngine On",
305305
"SecRule QUERY_STRING \".\" \"id:2,phase:2,setvar:tx.test=2\"",
306306
"SecRule ARGS:res \"@inspectFile test-cases/data/match-getvars.lua\" \"id:1,phase:2,pass,t:trim\""
307307
]
308+
},
309+
{
310+
"enabled":1,
311+
"version_min":300000,
312+
"title":"Testing Operator :: @inspectFile - lua (6/?)",
313+
"client":{
314+
"ip":"200.249.12.31",
315+
"port":123
316+
},
317+
"server":{
318+
"ip":"200.249.12.31",
319+
"port":80
320+
},
321+
"request":{
322+
"headers":{
323+
"Host":"localhost",
324+
"User-Agent":"curl/7.38.0",
325+
"Accept":"*/*",
326+
"Content-Length": "27",
327+
"Content-Type": "application/x-www-form-urlencoded"
328+
},
329+
"uri":"/whee?res=whee&z=z&d=e",
330+
"method":"GET",
331+
"body": [ ]
332+
},
333+
"response":{
334+
"headers":{},
335+
"body":[
336+
"no need."
337+
]
338+
},
339+
"expected":{
340+
"debug_log":"Just fine."
341+
},
342+
"rules":[
343+
"SecRuleEngine On",
344+
"SecRule QUERY_STRING \".\" \"id:2,phase:2,setvar:tx.test=FELIPE\"",
345+
"SecRule QUERY_STRING \"@inspectFile test-cases/data/match-getvar-transformation.lua\" \"id:1,phase:2,pass\""
346+
]
347+
},
348+
{
349+
"enabled":1,
350+
"version_min":300000,
351+
"title":"Testing Operator :: @inspectFile - lua (7/?)",
352+
"client":{
353+
"ip":"200.249.12.31",
354+
"port":123
355+
},
356+
"server":{
357+
"ip":"200.249.12.31",
358+
"port":80
359+
},
360+
"request":{
361+
"headers":{
362+
"Host":"localhost",
363+
"User-Agent":"curl/7.38.0",
364+
"Accept":"*/*",
365+
"Content-Length": "27",
366+
"Content-Type": "application/x-www-form-urlencoded"
367+
},
368+
"uri":"/whee?res=whee&z=z&d=e",
369+
"method":"GET",
370+
"body": [ ]
371+
},
372+
"response":{
373+
"headers":{},
374+
"body":[
375+
"no need."
376+
]
377+
},
378+
"expected":{
379+
"debug_log":"Whee. Working like a charm. That is what we have: FELIPE"
380+
},
381+
"rules":[
382+
"SecRuleEngine On",
383+
"SecRule QUERY_STRING \".\" \"id:2,phase:2,setvar:tx.test=FeLiPe\"",
384+
"SecRule QUERY_STRING \"@inspectFile test-cases/data/match-getvar-multi-transformations.lua\" \"id:1,phase:2,pass\""
385+
]
308386
}
309387
]

0 commit comments

Comments
 (0)