Skip to content

Commit a18af82

Browse files
schema validation
Signed-off-by: Abhishek Choudhary <shreemaan.abhishek@gmail.com>
1 parent a07c7bc commit a18af82

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

apisix/plugins/openid-connect.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,14 @@ local schema = {
139139
}
140140
},
141141
required = {"secret"},
142+
["if"] = {
143+
properties = {
144+
storage = { enum = {"redis"} },
145+
},
146+
},
147+
["then"] = {
148+
required = {"redis"},
149+
},
142150
additionalProperties = false,
143151
},
144152
realm = {

t/plugin/openid-connect-redis.t

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,32 @@ GET /t
380380
refresh successful - request passed to upstream
381381
--- no_error_log
382382
[error]
383+
384+
385+
386+
=== TEST 4: check schema with missing redis configuration when storage is redis
387+
--- config
388+
location /t {
389+
content_by_lua_block {
390+
local plugin = require("apisix.plugins.openid-connect")
391+
local ok, err = plugin.check_schema({
392+
client_id = "a",
393+
client_secret = "b",
394+
discovery = "c",
395+
session = {
396+
secret = "jwcE5v3pM9VhqLxmxFOH9uZaLo8u7KQK",
397+
storage = "redis",
398+
-- redis object missing
399+
}
400+
})
401+
if not ok then
402+
ngx.say(err)
403+
else
404+
ngx.say("done")
405+
end
406+
}
407+
}
408+
--- request
409+
GET /t
410+
--- response_body
411+
property "session" validation failed: then clause did not match

0 commit comments

Comments
 (0)