Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcbf7ec7

Browse files
committed
fix: avoid setting session token header twice
1 parent0238f29 commitcbf7ec7

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

‎codersdk/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ func (c *Client) Dial(ctx context.Context, path string, opts *websocket.DialOpti
354354
ifopts.HTTPHeader==nil {
355355
opts.HTTPHeader= http.Header{}
356356
}
357-
ifopts.HTTPHeader.Get("tokenHeader")=="" {
357+
ifopts.HTTPHeader.Get(tokenHeader)=="" {
358358
opts.HTTPHeader.Set(tokenHeader,c.SessionToken())
359359
}
360360

‎vpn/client.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (*client) NewConn(initCtx context.Context, serverURL *url.URL, token string
9292
sdk.SetSessionToken(token)
9393
sdk.HTTPClient.Transport=&codersdk.HeaderTransport{
9494
Transport:http.DefaultTransport,
95-
Header:headers,
95+
Header:headers.Clone(),
9696
}
9797

9898
// New context, separate from initCtx. We don't want to cancel the
@@ -129,17 +129,18 @@ func (*client) NewConn(initCtx context.Context, serverURL *url.URL, token string
129129
headers.Set(codersdk.SessionTokenHeader,token)
130130
dialer:=workspacesdk.NewWebsocketDialer(options.Logger,rpcURL,&websocket.DialOptions{
131131
HTTPClient:sdk.HTTPClient,
132-
HTTPHeader:headers,
132+
HTTPHeader:headers.Clone(),
133133
CompressionMode:websocket.CompressionDisabled,
134134
},workspacesdk.WithWorkspaceUpdates(&proto.WorkspaceUpdatesRequest{
135135
WorkspaceOwnerId:tailnet.UUIDToByteSlice(me.ID),
136136
}))
137137

138+
clonedHeaders:=headers.Clone()
138139
ip:=tailnet.CoderServicePrefix.RandomAddr()
139140
conn,err:=tailnet.NewConn(&tailnet.Options{
140141
Addresses: []netip.Prefix{netip.PrefixFrom(ip,128)},
141142
DERPMap:connInfo.DERPMap,
142-
DERPHeader:&headers,
143+
DERPHeader:&clonedHeaders,
143144
DERPForceWebSockets:connInfo.DERPForceWebSockets,
144145
Logger:options.Logger,
145146
BlockEndpoints:connInfo.DisableDirectConnections,

‎vpn/client_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
9090
server:=httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter,r*http.Request) {
9191
switchr.URL.Path {
9292
case"/api/v2/users/me":
93+
values:=r.Header.Values(codersdk.SessionTokenHeader)
94+
assert.Len(t,values,1,"expected exactly one session token header value")
9395
httpapi.Write(ctx,w,http.StatusOK, codersdk.User{
9496
ReducedUser: codersdk.ReducedUser{
9597
MinimalUser: codersdk.MinimalUser{
@@ -101,6 +103,8 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
101103
user<-struct{}{}
102104

103105
case"/api/v2/workspaceagents/connection":
106+
values:=r.Header.Values(codersdk.SessionTokenHeader)
107+
assert.Len(t,values,1,"expected exactly one session token header value")
104108
httpapi.Write(ctx,w,http.StatusOK,tc.agentConnectionInfo)
105109
connInfo<-struct{}{}
106110

@@ -109,6 +113,9 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
109113
cVer:=r.URL.Query().Get("version")
110114
assert.Equal(t,"2.3",cVer)
111115

116+
values:=r.Header.Values(codersdk.SessionTokenHeader)
117+
assert.Len(t,values,1,"expected exactly one session token header value")
118+
112119
sws,err:=websocket.Accept(w,r,nil)
113120
if!assert.NoError(t,err) {
114121
return

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp