Pass context in OIDC helpers

This commit is contained in:
Juan Font Alonso 2022-09-04 15:02:18 +02:00
parent 434747e007
commit 52073ce7c9

10
oidc.go
View file

@ -148,12 +148,12 @@ func (h *Headscale) OIDCCallback(
return return
} }
rawIDToken, err := h.getIDTokenForOIDCCallback(writer, code, state) rawIDToken, err := h.getIDTokenForOIDCCallback(req.Context(), writer, code, state)
if err != nil { if err != nil {
return return
} }
idToken, err := h.verifyIDTokenForOIDCCallback(writer, rawIDToken) idToken, err := h.verifyIDTokenForOIDCCallback(req.Context(), writer, rawIDToken)
if err != nil { if err != nil {
return return
} }
@ -240,10 +240,11 @@ func validateOIDCCallbackParams(
} }
func (h *Headscale) getIDTokenForOIDCCallback( func (h *Headscale) getIDTokenForOIDCCallback(
ctx context.Context,
writer http.ResponseWriter, writer http.ResponseWriter,
code, state string, code, state string,
) (string, error) { ) (string, error) {
oauth2Token, err := h.oauth2Config.Exchange(context.Background(), code) oauth2Token, err := h.oauth2Config.Exchange(ctx, code)
if err != nil { if err != nil {
log.Error(). log.Error().
Err(err). Err(err).
@ -287,11 +288,12 @@ func (h *Headscale) getIDTokenForOIDCCallback(
} }
func (h *Headscale) verifyIDTokenForOIDCCallback( func (h *Headscale) verifyIDTokenForOIDCCallback(
ctx context.Context,
writer http.ResponseWriter, writer http.ResponseWriter,
rawIDToken string, rawIDToken string,
) (*oidc.IDToken, error) { ) (*oidc.IDToken, error) {
verifier := h.oidcProvider.Verifier(&oidc.Config{ClientID: h.cfg.OIDC.ClientID}) verifier := h.oidcProvider.Verifier(&oidc.Config{ClientID: h.cfg.OIDC.ClientID})
idToken, err := verifier.Verify(context.Background(), rawIDToken) idToken, err := verifier.Verify(ctx, rawIDToken)
if err != nil { if err != nil {
log.Error(). log.Error().
Err(err). Err(err).