pomerium/internal/controlplane/luascripts/rewrite-headers.lua
Caleb Doxsey 7f6107051f
config: add rewrite_response_headers option (#1961)
* add lua script to rewrite response headers

* add policy config

* update docs
2021-03-05 09:40:17 -07:00

28 lines
860 B
Lua

function replace_prefix(str, prefix, value)
return str:gsub("^"..prefix, value)
end
function envoy_on_request(request_handle)
end
function envoy_on_response(response_handle)
local headers = response_handle:headers()
local metadata = response_handle:metadata()
-- should be in the form:
-- [{
-- "header":"Location",
-- "prefix":"http://localhost:8000/two/",
-- "value":"http://frontend/one/"
-- }]
local rewrite_response_headers = metadata:get("rewrite_response_headers")
if rewrite_response_headers then
for _, obj in pairs(rewrite_response_headers) do
local hdr = headers:get(obj.header)
if hdr ~= nil then
local newhdr = replace_prefix(hdr, obj.prefix, obj.value)
headers:replace(obj.header, newhdr)
end
end
end
end