Merge pull request #49219 from jmillikin-stripe/case-insensitive-request-header-group

Automatic merge from submit-queue (batch tested with PRs 49081, 49318, 49219, 48989, 48486)

Use case-insensitive header keys for `--requestheader-group-headers`.

This flag is documented as being case-insensitive, but the code was
doing a case-sensitive map lookup.

**Release note**:
```release-note
Bug fix: Parsing of `--requestheader-group-headers` in requests should be case-insensitive.
```
This commit is contained in:
Kubernetes Submit Queue 2017-07-28 04:03:40 -07:00 committed by GitHub
commit e87f809da0
2 changed files with 16 additions and 1 deletions

View File

@ -145,7 +145,8 @@ func headerValue(h http.Header, headerNames []string) string {
func allHeaderValues(h http.Header, headerNames []string) []string {
ret := []string{}
for _, headerName := range headerNames {
values, ok := h[headerName]
headerKey := http.CanonicalHeaderKey(headerName)
values, ok := h[headerKey]
if !ok {
continue
}

View File

@ -111,6 +111,20 @@ func TestRequestHeader(t *testing.T) {
},
expectedOk: true,
},
"groups case-insensitive": {
nameHeaders: []string{"X-REMOTE-User"},
groupHeaders: []string{"X-REMOTE-Group"},
requestHeaders: http.Header{
"X-Remote-User": {"Bob"},
"X-Remote-Group": {"Users"},
},
expectedUser: &user.DefaultInfo{
Name: "Bob",
Groups: []string{"Users"},
Extra: map[string][]string{},
},
expectedOk: true,
},
"extra prefix matches case-insensitive": {
nameHeaders: []string{"X-Remote-User"},