mirror of
https://github.com/pomerium/pomerium.git
synced 2025-08-03 16:59:22 +02:00
config: add rewrite_response_headers option (#1961)
* add lua script to rewrite response headers * add policy config * update docs
This commit is contained in:
parent
b6ec01f377
commit
7f6107051f
12 changed files with 348 additions and 35 deletions
28
internal/controlplane/luascripts/rewrite-headers.lua
Normal file
28
internal/controlplane/luascripts/rewrite-headers.lua
Normal file
|
@ -0,0 +1,28 @@
|
|||
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
|
Loading…
Add table
Add a link
Reference in a new issue