Move escapeLocationPathVar to escapeLiteralDollar

This commit is contained in:
Bryan Shelton 2018-10-09 12:58:50 -07:00
parent 3dc131bd57
commit 3686e4f366
3 changed files with 22 additions and 9 deletions

View file

@ -120,7 +120,7 @@ var (
} }
return true return true
}, },
"escapeLocationPathVar": escapeLocationPathVar, "escapeLiteralDollar": escapeLiteralDollar,
"shouldConfigureLuaRestyWAF": shouldConfigureLuaRestyWAF, "shouldConfigureLuaRestyWAF": shouldConfigureLuaRestyWAF,
"buildLuaSharedDictionaries": buildLuaSharedDictionaries, "buildLuaSharedDictionaries": buildLuaSharedDictionaries,
"buildLocation": buildLocation, "buildLocation": buildLocation,
@ -162,13 +162,13 @@ var (
} }
) )
// escapeLocationPathVar will replace the $ character with ${literal_dollar} // escapeLiteralDollar will replace the $ character with ${literal_dollar}
// which is made to work via the following configuration in the http section of // which is made to work via the following configuration in the http section of
// the template: // the template:
// geo $literal_dollar { // geo $literal_dollar {
// default "$"; // default "$";
// } // }
func escapeLocationPathVar(input interface{}) string { func escapeLiteralDollar(input interface{}) string {
inputStr, ok := input.(string) inputStr, ok := input.(string)
if !ok { if !ok {
return "" return ""

View file

@ -835,15 +835,28 @@ func TestBuildUpstreamName(t *testing.T) {
} }
} }
func TestEscapeLocationPathVar(t *testing.T) { func TestEscapeLiteralDollar(t *testing.T) {
escapedPath := escapeLocationPathVar("/$") escapedPath := escapeLiteralDollar("/$")
expected := "/${literal_dollar}" expected := "/${literal_dollar}"
if escapedPath != expected { if escapedPath != expected {
t.Errorf("Expected %s but got %s", expected, escapedPath) t.Errorf("Expected %v but returned %v", expected, escapedPath)
} }
escapedPath = escapeLocationPathVar(false)
escapedPath = escapeLiteralDollar("/hello-$/world-$/")
expected = "/hello-${literal_dollar}/world-${literal_dollar}/"
if escapedPath != expected {
t.Errorf("Expected %v but returned %v", expected, escapedPath)
}
leaveUnchagned := "/leave-me/unchagned"
escapedPath = escapeLiteralDollar(leaveUnchagned)
if escapedPath != leaveUnchagned {
t.Errorf("Expected %v but returned %v", leaveUnchagned, escapedPath)
}
escapedPath = escapeLiteralDollar(false)
expected = "" expected = ""
if escapedPath != expected { if escapedPath != expected {
t.Errorf("Expected %s but got %s", expected, escapedPath) t.Errorf("Expected %v but returned %v", expected, escapedPath)
} }
} }

View file

@ -976,7 +976,7 @@ stream {
set $ingress_name "{{ $ing.Rule }}"; set $ingress_name "{{ $ing.Rule }}";
set $service_name "{{ $ing.Service }}"; set $service_name "{{ $ing.Service }}";
set $service_port "{{ $location.Port }}"; set $service_port "{{ $location.Port }}";
set $location_path "{{ $location.Path | escapeLocationPathVar }}"; set $location_path "{{ $location.Path | escapeLiteralDollar }}";
{{ if $all.Cfg.EnableOpentracing }} {{ if $all.Cfg.EnableOpentracing }}
opentracing_propagate_context; opentracing_propagate_context;