Move escapeLocationPathVar to escapeLiteralDollar
This commit is contained in:
parent
3dc131bd57
commit
3686e4f366
3 changed files with 22 additions and 9 deletions
|
@ -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 ""
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue