From 32334a6372ebd8f712a16544f85c84677d95d638 Mon Sep 17 00:00:00 2001 From: David Eads Date: Wed, 6 Sep 2017 15:07:34 -0400 Subject: [PATCH] UPSTREAM: 49219: Use case-insensitive header keys for --requestheader-group-headers. --- .../request/headerrequest/requestheader.go | 3 ++- .../request/headerrequest/requestheader_test.go | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader.go index 3c34db622248..38f132b583f6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader.go @@ -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 } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_test.go index 33e5afcacad3..d81d4ee64a8d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_test.go @@ -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"},