Skip to content

Commit 3c5a4e6

Browse files
authored
Merge pull request #750 from scydas/fix_proxy_request
apiserver: fix the query param in proxy requests
2 parents ed879ce + b63e1db commit 3c5a4e6

File tree

1 file changed

+8
-12
lines changed
  • pkg/kubeapiserver/resourcerest/proxy

1 file changed

+8
-12
lines changed

pkg/kubeapiserver/resourcerest/proxy/proxy.go

+8-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
apierrors "k8s.io/apimachinery/pkg/api/errors"
99
"k8s.io/apimachinery/pkg/runtime"
1010
"k8s.io/apimachinery/pkg/runtime/schema"
11-
utilnet "k8s.io/apimachinery/pkg/util/net"
1211
"k8s.io/apimachinery/pkg/util/proxy"
1312
auditinternal "k8s.io/apiserver/pkg/apis/audit"
1413
"k8s.io/apiserver/pkg/audit"
@@ -62,27 +61,24 @@ func proxyConn(ctx context.Context, connGetter ClusterConnectionGetter, upgradeR
6261
return
6362
}
6463

65-
// First get URL Query from context.Context
66-
if query := request.RequestQueryFrom(ctx); query != nil {
67-
target.RawQuery = query.Encode()
68-
} else {
69-
target.RawQuery = req.URL.RawQuery
70-
}
71-
7264
proxy := proxy.NewUpgradeAwareHandler(target, transport, false, upgradeRequired, responder)
7365
proxy.UseLocationHost = true
7466

7567
var handler http.Handler = proxy
7668
if wrapProxy != nil {
7769
handler = wrapProxy(proxy)
7870
}
79-
r := req.WithContext(req.Context())
80-
r.Header = utilnet.CloneHeader(req.Header)
71+
72+
r := req.Clone(req.Context())
8173
if auditID, _ := audit.AuditIDFrom(ctx); auditID != "" {
82-
req.Header.Set(auditinternal.HeaderAuditID, string(auditID))
74+
r.Header.Set(auditinternal.HeaderAuditID, string(auditID))
75+
}
76+
// get URL Query from context.Context
77+
if query := request.RequestQueryFrom(ctx); query != nil {
78+
r.URL.RawQuery = query.Encode()
8379
}
8480

85-
handler.ServeHTTP(rw, req)
81+
handler.ServeHTTP(rw, r)
8682

8783
// merge headers
8884
for _, header := range []string{"Cache-Control", auditinternal.HeaderAuditID} {

0 commit comments

Comments
 (0)