| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent c972ea3 commit b783caa
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -287,12 +287,18 @@ func mutateHeadersByRules(headers, rules http.Header, repl httpserver.Replacer) | |||
| 287 | 287 | for ruleField, ruleValues := range rules { | |
| 288 | 288 | if strings.HasPrefix(ruleField, "+") { | |
| 289 | 289 | for _, ruleValue := range ruleValues { | |
| 290 | - headers.Add(strings.TrimPrefix(ruleField, "+"), repl.Replace(ruleValue)) | ||
| 290 | + replacement := repl.Replace(ruleValue) | ||
| 291 | + if len(replacement) > 0 { | ||
| 292 | + headers.Add(strings.TrimPrefix(ruleField, "+"), replacement) | ||
| 293 | + } | ||
| 291 | 294 | } | |
| 292 | 295 | } else if strings.HasPrefix(ruleField, "-") { | |
| 293 | 296 | headers.Del(strings.TrimPrefix(ruleField, "-")) | |
| 294 | 297 | } else if len(ruleValues) > 0 { | |
| 295 | - headers.Set(ruleField, repl.Replace(ruleValues[len(ruleValues)-1])) | ||
| 298 | + replacement := repl.Replace(ruleValues[len(ruleValues)-1]) | ||
| 299 | + if len(replacement) > 0 { | ||
| 300 | + headers.Set(ruleField, replacement) | ||
| 301 | + } | ||
| 296 | 302 | } | |
| 297 | 303 | } | |
| 298 | 304 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -407,8 +407,10 @@ func TestUpstreamHeadersUpdate(t *testing.T) { | |||
| 407 | 407 | "Upgrade": {"{>Upgrade}"}, | |
| 408 | 408 | "+Merge-Me": {"Merge-Value"}, | |
| 409 | 409 | "+Add-Me": {"Add-Value"}, | |
| 410 | + "+Add-Empty": {"{}"}, | ||
| 410 | 411 | "-Remove-Me": {""}, | |
| 411 | 412 | "Replace-Me": {"{hostname}"}, | |
| 413 | + "Clear-Me": {""}, | ||
| 412 | 414 | "Host": {"{>Host}"}, | |
| 413 | 415 | } | |
| 414 | 416 | // set up proxy | |
@@ -448,6 +450,11 @@ func TestUpstreamHeadersUpdate(t *testing.T) { | |||
| 448 | 450 | headerKey, expect, got) | |
| 449 | 451 | } | |
| 450 | 452 | ||
| 453 | + headerKey = "Add-Empty" | ||
| 454 | + if _, ok := actualHeaders[headerKey]; ok { | ||
| 455 | + t.Errorf("Request sent to upstream backend should not contain empty %v header", headerKey) | ||
| 456 | + } | ||
| 457 | + | ||
| 451 | 458 | headerKey = "Remove-Me" | |
| 452 | 459 | if _, ok := actualHeaders[headerKey]; ok { | |
| 453 | 460 | t.Errorf("Request sent to upstream backend should not contain %v header", headerKey) | |
@@ -461,6 +468,11 @@ func TestUpstreamHeadersUpdate(t *testing.T) { | |||
| 461 | 468 | headerKey, expect, got) | |
| 462 | 469 | } | |
| 463 | 470 | ||
| 471 | + headerKey = "Clear-Me" | ||
| 472 | + if _, ok := actualHeaders[headerKey]; ok { | ||
| 473 | + t.Errorf("Request sent to upstream backend should not contain empty %v header", headerKey) | ||
| 474 | + } | ||
| 475 | + | ||
| 464 | 476 | if actualHost != expectHost { | |
| 465 | 477 | t.Errorf("Request sent to upstream backend should have value of Host with %s, but got %s", expectHost, actualHost) | |
| 466 | 478 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments