From 3353e687e78d959d4a4cf540c25c03aefd263460 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Wed, 25 Feb 2026 09:53:41 -0600 Subject: [PATCH] chore: use header auth over cookies for agents (#22226) All non-browser connections should not use cookies --- codersdk/agentsdk/agentsdk.go | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/codersdk/agentsdk/agentsdk.go b/codersdk/agentsdk/agentsdk.go index fae6148e36..8b24ea7d07 100644 --- a/codersdk/agentsdk/agentsdk.go +++ b/codersdk/agentsdk/agentsdk.go @@ -6,7 +6,6 @@ import ( "fmt" "io" "net/http" - "net/http/cookiejar" "net/url" "sync" "time" @@ -321,21 +320,15 @@ func (c *Client) connectRPCVersion(ctx context.Context, version *apiversion.APIV } rpcURL.RawQuery = q.Encode() - jar, err := cookiejar.New(nil) - if err != nil { - return nil, xerrors.Errorf("create cookie jar: %w", err) - } - jar.SetCookies(rpcURL, []*http.Cookie{{ - Name: codersdk.SessionTokenCookie, - Value: c.SDK.SessionToken(), - }}) httpClient := &http.Client{ - Jar: jar, Transport: c.SDK.HTTPClient.Transport, } // nolint:bodyclose conn, res, err := websocket.Dial(ctx, rpcURL.String(), &websocket.DialOptions{ HTTPClient: httpClient, + HTTPHeader: http.Header{ + codersdk.SessionTokenHeader: []string{c.SDK.SessionToken()}, + }, }) if err != nil { if res == nil { @@ -709,16 +702,7 @@ func (c *Client) WaitForReinit(ctx context.Context) (*ReinitializationEvent, err return nil, xerrors.Errorf("parse url: %w", err) } - jar, err := cookiejar.New(nil) - if err != nil { - return nil, xerrors.Errorf("create cookie jar: %w", err) - } - jar.SetCookies(rpcURL, []*http.Cookie{{ - Name: codersdk.SessionTokenCookie, - Value: c.SDK.SessionToken(), - }}) httpClient := &http.Client{ - Jar: jar, Transport: c.SDK.HTTPClient.Transport, } @@ -726,6 +710,7 @@ func (c *Client) WaitForReinit(ctx context.Context) (*ReinitializationEvent, err if err != nil { return nil, xerrors.Errorf("build request: %w", err) } + req.Header[codersdk.SessionTokenHeader] = []string{c.SDK.SessionToken()} res, err := httpClient.Do(req) if err != nil {