mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-31 09:57:17 +02:00
backport-3980-to-0-21-0 (#3986)
This commit is contained in:
parent
9f541438ef
commit
26d76501fb
3 changed files with 7 additions and 4 deletions
|
@ -205,7 +205,7 @@ func Test_buildMainHTTPConnectionManagerFilter(t *testing.T) {
|
|||
"typedConfig": {
|
||||
"@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua",
|
||||
"defaultSourceCode": {
|
||||
"inlineString": "function replace_prefix(str, prefix, value)\n return str:gsub(\"^\"..prefix, value)\nend\n\nfunction envoy_on_request(request_handle)\nend\n\nfunction envoy_on_response(response_handle)\n local headers = response_handle:headers()\n local metadata = response_handle:metadata()\n\n -- should be in the form:\n -- [{\n -- \"header\":\"Location\",\n -- \"prefix\":\"http://localhost:8000/two/\",\n -- \"value\":\"http://frontend/one/\"\n -- }]\n local rewrite_response_headers = metadata:get(\"rewrite_response_headers\")\n if rewrite_response_headers then\n for _, obj in pairs(rewrite_response_headers) do\n local hdr = headers:get(obj.header)\n if hdr ~= nil then\n local newhdr = replace_prefix(hdr, obj.prefix, obj.value)\n headers:replace(obj.header, newhdr)\n end\n end\n end\nend\n"
|
||||
"inlineString": "function replace_prefix(str, prefix, value)\n if str:sub(0, prefix:len()) == prefix then\n return value..str:sub(prefix:len()+1)\n end\n return str\nend\n\nfunction envoy_on_request(request_handle)\nend\n\nfunction envoy_on_response(response_handle)\n local headers = response_handle:headers()\n local metadata = response_handle:metadata()\n\n -- should be in the form:\n -- [{\n -- \"header\":\"Location\",\n -- \"prefix\":\"http://localhost:8000/two/\",\n -- \"value\":\"http://frontend/one/\"\n -- }]\n local rewrite_response_headers = metadata:get(\"rewrite_response_headers\")\n if rewrite_response_headers then\n for _, obj in pairs(rewrite_response_headers) do\n local hdr = headers:get(obj.header)\n if hdr ~= nil then\n local newhdr = replace_prefix(hdr, obj.prefix, obj.value)\n headers:replace(obj.header, newhdr)\n end\n end\n end\nend\n"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -54,13 +54,13 @@ func TestLuaRewriteHeaders(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
|
||||
headers := map[string]string{
|
||||
"Location": "https://localhost:8080/two/some/uri/",
|
||||
"Location": "https://domain-with-dashes:8080/two/some/uri/",
|
||||
}
|
||||
metadata := map[string]interface{}{
|
||||
"rewrite_response_headers": []interface{}{
|
||||
map[string]interface{}{
|
||||
"header": "Location",
|
||||
"prefix": "https://localhost:8080/two/",
|
||||
"prefix": "https://domain-with-dashes:8080/two/",
|
||||
"value": "https://frontend/one/",
|
||||
},
|
||||
map[string]interface{}{
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
function replace_prefix(str, prefix, value)
|
||||
return str:gsub("^"..prefix, value)
|
||||
if str:sub(0, prefix:len()) == prefix then
|
||||
return value..str:sub(prefix:len()+1)
|
||||
end
|
||||
return str
|
||||
end
|
||||
|
||||
function envoy_on_request(request_handle)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue