in scripts/lua/policies/backendRouting.lua [102:118]
function _M.getUriPath(backendPath)
local gatewayPath = ngx.unescape_uri(ngx.var.gatewayPath)
gatewayPath = gatewayPath:gsub('-', '%%-')
local tenant = ngx.var.tenant:gsub('-', '%%-')
local uri = string.gsub(ngx.var.request_uri, '?.*', '')
uri = uri:gsub('/api/' .. tenant, '')
local _, j = uri:find(gatewayPath)
local incomingPath = ((j and uri:sub(j + 1)) or nil)
if backendPath == nil or backendPath == '' or backendPath == '/' then
incomingPath = (incomingPath and incomingPath ~= '') and incomingPath or '/'
incomingPath = string.sub(incomingPath, 1, 1) == '/' and incomingPath or utils.concatStrings({'/', incomingPath})
return incomingPath
else
return utils.concatStrings({backendPath, incomingPath})
end
end