55local helpers = require " spec.helpers"
66
77describe (" Plugin: jwt-keycloak (security logging)" , function ()
8-
98 before_each (function ()
109 helpers .setup_kong_mock ()
1110 helpers .setup_socket_mocks ()
1211 end )
13-
12+
1413 after_each (function ()
1514 helpers .teardown_kong_mock ()
1615 helpers .teardown_socket_mocks ()
1716 end )
1817
1918 describe (" security_event" , function ()
20- it (" should log security events and set ngx vars" , function ()
21- local securitylog = require (" kong.plugins.jwt-keycloak.gateway.securitylog" )
22-
23- -- Mock ngx.var to capture the set values
24- local captured_vars = {}
25- ngx .var = setmetatable ({}, {
26- __newindex = function (t , k , v )
27- captured_vars [k ] = v
28- end
29- })
30-
19+ it (" should log security events and set kong.ctx.shared vars" , function ()
20+ local securitylog = require (" gateway.securitylog" )
21+
3122 -- Test security_event function
3223 securitylog .security_event (' ua200' , ' test event details' )
33-
34- -- Verify that the ngx vars were set correctly
35- assert .equals (' ua200' , captured_vars .sec_event_code )
36- assert .equals (' test event details' , captured_vars .sec_event_details )
24+
25+ -- Verify that the ctx.shared vars were set correctly
26+ assert .equals (' ua200' , kong . ctx . shared .sec_event_code )
27+ assert .equals (' test event details' , kong . ctx . shared .sec_event_details )
3728 end )
3829 end )
3930
4031 describe (" collect_gateway_data" , function ()
4132 it (" should set gateway_consumer to anonymous when jwt is nil" , function ()
42- local securitylog = require (" kong.plugins.jwt-keycloak.gateway.securitylog" )
43-
44- -- Mock ngx.var to capture the set values
45- local captured_vars = {}
46- ngx .var = setmetatable ({}, {
47- __newindex = function (t , k , v )
48- captured_vars [k ] = v
49- end
50- })
51-
33+ local securitylog = require (" gateway.securitylog" )
34+
5235 -- Test with nil jwt
5336 securitylog .collect_gateway_data (nil )
54-
55- assert .equals (" anonymous" , captured_vars .gateway_consumer )
37+
38+ assert .equals (" anonymous" , kong . ctx . shared .gateway_consumer )
5639 end )
5740
5841 it (" should set gateway_consumer to anonymous when jwt.claims is nil" , function ()
59- local securitylog = require (" kong.plugins.jwt-keycloak.gateway.securitylog" )
60-
61- local captured_vars = {}
62- ngx .var = setmetatable ({}, {
63- __newindex = function (t , k , v )
64- captured_vars [k ] = v
65- end
66- })
67-
42+ local securitylog = require (" gateway.securitylog" )
43+
6844 -- Test with jwt but no claims
6945 local jwt = {}
7046 securitylog .collect_gateway_data (jwt )
71-
72- assert .equals (" anonymous" , captured_vars .gateway_consumer )
47+
48+ assert .equals (" anonymous" , kong . ctx . shared .gateway_consumer )
7349 end )
7450
7551 it (" should set gateway_consumer to clientId when available" , function ()
76- local securitylog = require (" kong.plugins.jwt-keycloak.gateway.securitylog" )
77-
78- local captured_vars = {}
79- ngx .var = setmetatable ({}, {
80- __newindex = function (t , k , v )
81- captured_vars [k ] = v
82- end
83- })
84-
52+ local securitylog = require (" gateway.securitylog" )
53+
8554 -- Test with jwt containing clientId
8655 local jwt = {
8756 claims = {
8857 clientId = " test-client-123"
8958 }
9059 }
9160 securitylog .collect_gateway_data (jwt )
92-
93- assert .equals (" test-client-123" , captured_vars .gateway_consumer )
61+
62+ assert .equals (" test-client-123" , kong . ctx . shared .gateway_consumer )
9463 end )
9564
9665 it (" should set gateway_consumer to anonymous when clientId is not a string" , function ()
97- local securitylog = require (" kong.plugins.jwt-keycloak.gateway.securitylog" )
98-
99- local captured_vars = {}
100- ngx .var = setmetatable ({}, {
101- __newindex = function (t , k , v )
102- captured_vars [k ] = v
103- end
104- })
105-
66+ local securitylog = require (" gateway.securitylog" )
67+
10668 -- Test with jwt containing non-string clientId
10769 local jwt = {
10870 claims = {
109- clientId = 123 -- number instead of string
71+ clientId = 123 -- number instead of string
11072 }
11173 }
11274 securitylog .collect_gateway_data (jwt )
113-
114- assert .equals (" anonymous" , captured_vars .gateway_consumer )
75+
76+ assert .equals (" anonymous" , kong . ctx . shared .gateway_consumer )
11577 end )
11678 end )
117- end )
79+ end )
0 commit comments