From 5828a9a5a2dd944e3028cd82324816d797b54a17 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 6 Nov 2023 18:15:03 +0100 Subject: [PATCH] debugging for analyzing token --- cmd/main.go | 1 + internal/config.go | 2 +- internal/provider/generic_oauth.go | 4 +++- internal/provider/google.go | 4 +++- internal/provider/oidc.go | 14 +++++++++++++- internal/provider/providers.go | 3 ++- 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index d8d8028..94801e8 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -25,6 +25,7 @@ func main() { http.HandleFunc("/", server.RootHandler) // Start + log.Info("wn test01 variant") log.WithField("config", config).Debug("Starting with config") log.Infof("Listening on :%d", config.Port) log.Info(http.ListenAndServe(fmt.Sprintf(":%d", config.Port), nil)) diff --git a/internal/config.go b/internal/config.go index 840fb6d..4f294b8 100644 --- a/internal/config.go +++ b/internal/config.go @@ -326,7 +326,7 @@ func (c *Config) setupProvider(name string) error { } // Setup - err = p.Setup() + err = p.Setup(log) if err != nil { return err } diff --git a/internal/provider/generic_oauth.go b/internal/provider/generic_oauth.go index a6bba51..2b10a7c 100644 --- a/internal/provider/generic_oauth.go +++ b/internal/provider/generic_oauth.go @@ -8,6 +8,8 @@ import ( "net/http" "golang.org/x/oauth2" + + "github.com/sirupsen/logrus" ) // GenericOAuth provider @@ -29,7 +31,7 @@ func (o *GenericOAuth) Name() string { } // Setup performs validation and setup -func (o *GenericOAuth) Setup() error { +func (o *GenericOAuth) Setup(log *logrus.Logger) error { // Check parmas if o.AuthURL == "" || o.TokenURL == "" || o.UserURL == "" || o.ClientID == "" || o.ClientSecret == "" { return errors.New("providers.generic-oauth.auth-url, providers.generic-oauth.token-url, providers.generic-oauth.user-url, providers.generic-oauth.client-id, providers.generic-oauth.client-secret must be set") diff --git a/internal/provider/google.go b/internal/provider/google.go index 1c0d6d1..f2ee6a7 100644 --- a/internal/provider/google.go +++ b/internal/provider/google.go @@ -6,6 +6,8 @@ import ( "fmt" "net/http" "net/url" + + "github.com/sirupsen/logrus" ) // Google provider @@ -26,7 +28,7 @@ func (g *Google) Name() string { } // Setup performs validation and setup -func (g *Google) Setup() error { +func (g *Google) Setup(log *logrus.Logger) error { if g.ClientID == "" || g.ClientSecret == "" { return errors.New("providers.google.client-id, providers.google.client-secret must be set") } diff --git a/internal/provider/oidc.go b/internal/provider/oidc.go index 5e17a58..b8bbbb6 100644 --- a/internal/provider/oidc.go +++ b/internal/provider/oidc.go @@ -6,6 +6,8 @@ import ( "github.com/coreos/go-oidc" "golang.org/x/oauth2" + + "github.com/sirupsen/logrus" ) // OIDC provider @@ -18,6 +20,8 @@ type OIDC struct { provider *oidc.Provider verifier *oidc.IDTokenVerifier + + log *logrus.Logger } // Name returns the name of the provider @@ -26,7 +30,9 @@ func (o *OIDC) Name() string { } // Setup performs validation and setup -func (o *OIDC) Setup() error { +func (o *OIDC) Setup(log *logrus.Logger) error { + o.log = log + // Check parms if o.IssuerURL == "" || o.ClientID == "" || o.ClientSecret == "" { return errors.New("providers.oidc.issuer-url, providers.oidc.client-id, providers.oidc.client-secret must be set") @@ -70,6 +76,7 @@ func (o *OIDC) ExchangeCode(redirectURI, code string) (string, error) { if err != nil { return "", err } + o.log.WithField("accessToken", token.AccessToken).Debug("getUser") // Extract ID token rawIDToken, ok := token.Extra("id_token").(string) @@ -90,10 +97,15 @@ func (o *OIDC) GetUser(token string) (User, error) { return user, err } + + o.log.WithField("idToken", idToken).Debug("getUser") + // Extract custom claims if err := idToken.Claims(&user); err != nil { return user, err } + o.log.WithField("user", user).Debug("getUser") + return user, nil } diff --git a/internal/provider/providers.go b/internal/provider/providers.go index ac863df..1acfff2 100644 --- a/internal/provider/providers.go +++ b/internal/provider/providers.go @@ -5,6 +5,7 @@ import ( // "net/url" "golang.org/x/oauth2" + "github.com/sirupsen/logrus" ) // Providers contains all the implemented providers @@ -20,7 +21,7 @@ type Provider interface { GetLoginURL(redirectURI, state string) string ExchangeCode(redirectURI, code string) (string, error) GetUser(token string) (User, error) - Setup() error + Setup(*logrus.Logger) error } type token struct {