mirror of
https://github.com/caddyserver/caddy.git
synced 2025-08-26 03:11:58 +08:00
map: Fix 95c03506 (avoid repeated expansions)
This commit is contained in:
@ -14,11 +14,11 @@ import (
|
||||
func TestHandler(t *testing.T) {
|
||||
for i, tc := range []struct {
|
||||
handler Handler
|
||||
reqPath string
|
||||
reqURI string
|
||||
expect map[string]interface{}
|
||||
}{
|
||||
{
|
||||
reqPath: "/foo",
|
||||
reqURI: "/foo",
|
||||
handler: Handler{
|
||||
Source: "{http.request.uri.path}",
|
||||
Destinations: []string{"{output}"},
|
||||
@ -34,7 +34,7 @@ func TestHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
reqPath: "/abcdef",
|
||||
reqURI: "/abcdef",
|
||||
handler: Handler{
|
||||
Source: "{http.request.uri.path}",
|
||||
Destinations: []string{"{output}"},
|
||||
@ -50,7 +50,7 @@ func TestHandler(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
reqPath: "/ABCxyzDEF",
|
||||
reqURI: "/ABCxyzDEF",
|
||||
handler: Handler{
|
||||
Source: "{http.request.uri.path}",
|
||||
Destinations: []string{"{output}"},
|
||||
@ -65,12 +65,29 @@ func TestHandler(t *testing.T) {
|
||||
"output": "...xyz...",
|
||||
},
|
||||
},
|
||||
{
|
||||
// Test case from https://caddy.community/t/map-directive-and-regular-expressions/13866/14?u=matt
|
||||
reqURI: "/?s=0%27+AND+%28SELECT+0+FROM+%28SELECT+count%28%2A%29%2C+CONCAT%28%28SELECT+%40%40version%29%2C+0x23%2C+FLOOR%28RAND%280%29%2A2%29%29+AS+x+FROM+information_schema.columns+GROUP+BY+x%29+y%29+-+-+%27",
|
||||
handler: Handler{
|
||||
Source: "{http.request.uri}",
|
||||
Destinations: []string{"{output}"},
|
||||
Mappings: []Mapping{
|
||||
{
|
||||
InputRegexp: "(?i)(\\^|`|<|>|%|\\\\|\\{|\\}|\\|)",
|
||||
Outputs: []interface{}{"3"},
|
||||
},
|
||||
},
|
||||
},
|
||||
expect: map[string]interface{}{
|
||||
"output": "3",
|
||||
},
|
||||
},
|
||||
} {
|
||||
if err := tc.handler.Provision(caddy.Context{}); err != nil {
|
||||
t.Fatalf("Test %d: Provisioning handler: %v", i, err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, tc.reqPath, nil)
|
||||
req, err := http.NewRequest(http.MethodGet, tc.reqURI, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Test %d: Creating request: %v", i, err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user