@@ -31,6 +31,7 @@ import (
31
31
"k8s.io/apiserver/pkg/registry/rest"
32
32
platforminternalclient "tkestack.io/tke/api/client/clientset/internalversion/typed/platform/internalversion"
33
33
"tkestack.io/tke/pkg/platform/util"
34
+ "tkestack.io/tke/pkg/util/log"
34
35
)
35
36
36
37
// Support both GET and POST methods. We must support GET for browsers that want
@@ -64,7 +65,7 @@ func (r *ExecREST) Connect(ctx context.Context, name string, opts runtime.Object
64
65
return nil , fmt .Errorf ("invalid options object: %#v" , opts )
65
66
}
66
67
67
- location , transport , token , err := util .APIServerLocation (ctx , r .platformClient )
68
+ location , transport , _ , err := util .APIServerLocation (ctx , r .platformClient )
68
69
if err != nil {
69
70
return nil , err
70
71
}
@@ -101,22 +102,30 @@ func (r *ExecREST) Connect(ctx context.Context, name string, opts runtime.Object
101
102
102
103
return & execHandler {
103
104
upgradeAwareHandler : newThrottledUpgradeAwareProxyHandler (location , transport , false , true , responder ),
104
- token : token ,
105
105
}, nil
106
106
}
107
107
108
108
type execHandler struct {
109
109
upgradeAwareHandler * proxy.UpgradeAwareHandler
110
- token string
111
110
}
112
111
113
112
func (h * execHandler ) ServeHTTP (w http.ResponseWriter , req * http.Request ) {
114
- newReq := req .WithContext (req .Context ())
115
- newReq .Header = utilnet .CloneHeader (req .Header )
116
- if h .token != "" {
117
- newReq .Header .Add ("Authorization" , fmt .Sprintf ("Bearer %s" , h .token ))
113
+ reqClone := utilnet .CloneRequest (req )
114
+ reqClone .URL .Scheme = h .upgradeAwareHandler .Location .Scheme
115
+ reqClone .URL .Host = h .upgradeAwareHandler .Location .Host
116
+ reqClone .Header = nil
117
+ resp , err := h .upgradeAwareHandler .Transport .RoundTrip (reqClone )
118
+ if err != nil {
119
+ log .Warnf ("err %v" , err )
120
+ }
121
+ outReq := resp .Request
122
+ for k , vs := range req .Header {
123
+ for _ , v := range vs {
124
+ outReq .Header .Add (k , v )
125
+ }
118
126
}
119
- h .upgradeAwareHandler .ServeHTTP (w , newReq )
127
+ log .Errorf ("header: %v" , outReq )
128
+ h .upgradeAwareHandler .ServeHTTP (w , outReq )
120
129
}
121
130
122
131
func newThrottledUpgradeAwareProxyHandler (location * url.URL , transport http.RoundTripper , wrapTransport , upgradeRequired bool , responder rest.Responder ) * proxy.UpgradeAwareHandler {
0 commit comments