diff --git a/kong/plugins/basicauth2keyauth/handler.lua b/kong/plugins/basicauth2keyauth/handler.lua index 71a1a76..3f0d855 100644 --- a/kong/plugins/basicauth2keyauth/handler.lua +++ b/kong/plugins/basicauth2keyauth/handler.lua @@ -13,7 +13,7 @@ local function retrieve_credentials(request, header_name, conf) local authorization_header = request.get_headers()[header_name] if authorization_header then - local iterator, iter_err = ngx.re.gmatch(authorization_header, "\\s*[Bb]asic\\s*(.+)") + local iterator, iter_err = ngx.re.gmatch(authorization_header, "\\s*Basic\\s*(.+)", "oji") if not iterator then ngx.log(ngx.ERR, iter_err) return diff --git a/spec/basicauth2keyauth/01-access_spec.lua b/spec/basicauth2keyauth/01-access_spec.lua index 16f4ca9..03e0b2d 100644 --- a/spec/basicauth2keyauth/01-access_spec.lua +++ b/spec/basicauth2keyauth/01-access_spec.lua @@ -100,5 +100,18 @@ describe("Plugin: key-auth (access)", function() local header_value = assert.request(res).has.header("apikey_from_basicauth") assert.equal("632d187cde1f395f3fb17e9783748d101b70174988a8e148bc7bc20f63453ea5", header_value) end) + it("generates new api_key header with sha256 value if basic is in upper case", function() + local res = assert(client:send { + method = "GET", + path = "/request", + headers = { + ["Host"] = "host2.com", + ["Authorization"] = "BASIC YXBpMTIzNA==" -- "api1234" + } + }) + assert.res_status(200, res) + local header_value = assert.request(res).has.header("apikey_from_basicauth") + assert.equal("632d187cde1f395f3fb17e9783748d101b70174988a8e148bc7bc20f63453ea5", header_value) + end) end) end)