From 18fffcc755551b881f2ae182a0030bb5708a3e37 Mon Sep 17 00:00:00 2001 From: Trong Huu Nguyen Date: Thu, 5 May 2022 11:09:03 +0200 Subject: [PATCH] deps: migrate from lestrrat-go/jwx to lestrrat-go/jwx/v2 --- go.mod | 5 ++--- go.sum | 13 +++++-------- pkg/crypto/jwk.go | 6 +++--- pkg/crypto/jwks.go | 4 ++-- pkg/jwt/jwt.go | 15 +++++++++++---- pkg/jwt/jwt_access_token.go | 4 ++-- pkg/jwt/jwt_id_token.go | 4 ++-- pkg/jwt/jwt_tokens.go | 2 +- pkg/mock/client_configuration.go | 2 +- pkg/mock/handler.go | 12 ++++++------ pkg/mock/provider.go | 2 +- pkg/openid/assertion.go | 5 ++--- pkg/openid/assertion_test.go | 6 ++---- pkg/openid/clients/configuration.go | 2 +- pkg/openid/clients/openid.go | 2 +- pkg/openid/provider.go | 22 ++++++++++++++-------- pkg/router/session_fallback_test.go | 22 +++++++++++++++------- pkg/router/session_id_test.go | 2 +- pkg/router/templates/error.gohtml | 4 ++-- pkg/session/memory_test.go | 2 +- pkg/session/redis_test.go | 2 +- 21 files changed, 76 insertions(+), 62 deletions(-) diff --git a/go.mod b/go.mod index 75c581c..7348d7f 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/go-chi/httplog v0.2.4 github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.3.0 - github.com/lestrrat-go/jwx v1.2.24 + github.com/lestrrat-go/jwx/v2 v2.0.0 github.com/nais/liberator v0.0.0-20220505083635-84398d40ee40 github.com/prometheus/client_golang v1.12.1 github.com/rs/zerolog v1.26.1 @@ -30,9 +30,9 @@ require ( github.com/goccy/go-json v0.9.7 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.1 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect + github.com/lestrrat-go/httprc v1.0.1 // indirect github.com/lestrrat-go/iter v1.0.2 // indirect github.com/lestrrat-go/option v1.0.0 // indirect github.com/magiconair/properties v1.8.6 // indirect @@ -41,7 +41,6 @@ require ( github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.0.0 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.34.0 // indirect diff --git a/go.sum b/go.sum index f170918..8b07c60 100644 --- a/go.sum +++ b/go.sum @@ -68,7 +68,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= @@ -190,18 +189,16 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= -github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= -github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= github.com/lestrrat-go/blackmagic v1.0.1 h1:lS5Zts+5HIC/8og6cGHb0uCcNCa3OUt1ygh3Qz2Fe80= github.com/lestrrat-go/blackmagic v1.0.1/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= -github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= +github.com/lestrrat-go/httprc v1.0.1 h1:Cnc4NxIySph38pQPzKbjg5OkKsGR/Cf5xcWt5OlSUDI= +github.com/lestrrat-go/httprc v1.0.1/go.mod h1:5Ml+nB++j6IC0e6LzefJnrpMQDKgDwDCaIQQzhbqhJM= github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= -github.com/lestrrat-go/jwx v1.2.24 h1:N6Qsn6TUsDzz+qgS/1xcfBtkQfnbwW01fLFJpuYgKsg= -github.com/lestrrat-go/jwx v1.2.24/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY= +github.com/lestrrat-go/jwx/v2 v2.0.0 h1:P0ufz+eqGrKDSIdcTQXRbtOhBZ8gTXG6zlnoc/AH7hM= +github.com/lestrrat-go/jwx/v2 v2.0.0/go.mod h1:6JfwCE7IwHTaUBdNgNUmTYN8Cxi557CjJM764daXDao= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= @@ -231,7 +228,6 @@ github.com/pelletier/go-toml/v2 v2.0.0 h1:P7Bq0SaI8nsexyay5UAyDo+ICWy5MQPgEZ5+l8 github.com/pelletier/go-toml/v2 v2.0.0/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -315,6 +311,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= diff --git a/pkg/crypto/jwk.go b/pkg/crypto/jwk.go index 5be152b..b2966f2 100644 --- a/pkg/crypto/jwk.go +++ b/pkg/crypto/jwk.go @@ -4,8 +4,8 @@ import ( "crypto/rand" "crypto/rsa" - "github.com/lestrrat-go/jwx/jwa" - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwa" + "github.com/lestrrat-go/jwx/v2/jwk" ) func NewJwk() (jwk.Key, error) { @@ -14,7 +14,7 @@ func NewJwk() (jwk.Key, error) { panic(err) } - key, err := jwk.New(privateKey) + key, err := jwk.FromRaw(privateKey) if err != nil { return nil, err } diff --git a/pkg/crypto/jwks.go b/pkg/crypto/jwks.go index a70a5ef..8358d97 100644 --- a/pkg/crypto/jwks.go +++ b/pkg/crypto/jwks.go @@ -1,7 +1,7 @@ package crypto import ( - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" ) type JwkSet struct { @@ -16,7 +16,7 @@ func NewJwkSet() (*JwkSet, error) { } privateKeys := jwk.NewSet() - privateKeys.Add(key) + privateKeys.AddKey(key) publicKeys, err := jwk.PublicSetOf(privateKeys) if err != nil { diff --git a/pkg/jwt/jwt.go b/pkg/jwt/jwt.go index 570e735..e58aaf0 100644 --- a/pkg/jwt/jwt.go +++ b/pkg/jwt/jwt.go @@ -4,8 +4,13 @@ import ( "fmt" "time" - "github.com/lestrrat-go/jwx/jwk" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwk" + "github.com/lestrrat-go/jwx/v2/jws" + "github.com/lestrrat-go/jwx/v2/jwt" +) + +const ( + AcceptableClockSkew = 10 * time.Second ) type Token interface { @@ -78,8 +83,10 @@ func NewToken(raw string, jwtToken jwt.Token) Token { func Parse(raw string, jwks jwk.Set) (jwt.Token, error) { parseOpts := []jwt.ParseOption{ - jwt.WithKeySet(jwks), - jwt.InferAlgorithmFromKey(true), + jwt.WithKeySet(jwks, + jws.WithInferAlgorithmFromKey(true), + ), + jwt.WithAcceptableSkew(AcceptableClockSkew), } token, err := jwt.ParseString(raw, parseOpts...) if err != nil { diff --git a/pkg/jwt/jwt_access_token.go b/pkg/jwt/jwt_access_token.go index 748e298..04ae016 100644 --- a/pkg/jwt/jwt_access_token.go +++ b/pkg/jwt/jwt_access_token.go @@ -1,8 +1,8 @@ package jwt import ( - "github.com/lestrrat-go/jwx/jwk" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwk" + "github.com/lestrrat-go/jwx/v2/jwt" ) type AccessToken struct { diff --git a/pkg/jwt/jwt_id_token.go b/pkg/jwt/jwt_id_token.go index 770f219..4899004 100644 --- a/pkg/jwt/jwt_id_token.go +++ b/pkg/jwt/jwt_id_token.go @@ -3,8 +3,8 @@ package jwt import ( "time" - "github.com/lestrrat-go/jwx/jwk" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwk" + "github.com/lestrrat-go/jwx/v2/jwt" "github.com/nais/wonderwall/pkg/openid" ) diff --git a/pkg/jwt/jwt_tokens.go b/pkg/jwt/jwt_tokens.go index 017a543..5cabe65 100644 --- a/pkg/jwt/jwt_tokens.go +++ b/pkg/jwt/jwt_tokens.go @@ -3,7 +3,7 @@ package jwt import ( "fmt" - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" "golang.org/x/oauth2" ) diff --git a/pkg/mock/client_configuration.go b/pkg/mock/client_configuration.go index c2b1123..7a4f2d4 100644 --- a/pkg/mock/client_configuration.go +++ b/pkg/mock/client_configuration.go @@ -1,7 +1,7 @@ package mock import ( - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" "github.com/nais/wonderwall/pkg/crypto" "github.com/nais/wonderwall/pkg/openid/scopes" diff --git a/pkg/mock/handler.go b/pkg/mock/handler.go index ba92d1b..5c8eb29 100644 --- a/pkg/mock/handler.go +++ b/pkg/mock/handler.go @@ -8,9 +8,9 @@ import ( "time" "github.com/google/uuid" - "github.com/lestrrat-go/jwx/jwa" - "github.com/lestrrat-go/jwx/jwk" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwa" + "github.com/lestrrat-go/jwx/v2/jwk" + "github.com/lestrrat-go/jwx/v2/jwt" ) type identityProviderHandler struct { @@ -44,12 +44,12 @@ type tokenResponse struct { func (ip *identityProviderHandler) signToken(token jwt.Token) (string, error) { privateJwkSet := *ip.Provider.PrivateJwkSet() - signer, ok := privateJwkSet.Get(0) + signer, ok := privateJwkSet.Key(0) if !ok { return "", fmt.Errorf("could not get signer") } - signedToken, err := jwt.Sign(token, jwa.RS256, signer) + signedToken, err := jwt.Sign(token, jwt.WithKey(jwa.RS256, signer)) if err != nil { return "", err } @@ -147,7 +147,7 @@ func (ip *identityProviderHandler) Token(w http.ResponseWriter, r *http.Request) clientJwk := ip.Provider.GetClientConfiguration().GetClientJWK() clientJwkSet := jwk.NewSet() - clientJwkSet.Add(clientJwk) + clientJwkSet.AddKey(clientJwk) publicClientJwkSet, err := jwk.PublicSetOf(clientJwkSet) if err != nil { w.WriteHeader(http.StatusInternalServerError) diff --git a/pkg/mock/provider.go b/pkg/mock/provider.go index 42f184d..af0933d 100644 --- a/pkg/mock/provider.go +++ b/pkg/mock/provider.go @@ -3,7 +3,7 @@ package mock import ( "context" - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" log "github.com/sirupsen/logrus" "github.com/nais/wonderwall/pkg/crypto" diff --git a/pkg/openid/assertion.go b/pkg/openid/assertion.go index 207703b..f8dce3a 100644 --- a/pkg/openid/assertion.go +++ b/pkg/openid/assertion.go @@ -5,8 +5,7 @@ import ( "time" "github.com/google/uuid" - "github.com/lestrrat-go/jwx/jwa" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwt" ) func ClientAssertion(provider Provider, expiration time.Duration) (string, error) { @@ -33,7 +32,7 @@ func ClientAssertion(provider Provider, expiration time.Duration) (string, error } } - encoded, err := jwt.Sign(tok, jwa.SignatureAlgorithm(key.Algorithm()), key) + encoded, err := jwt.Sign(tok, jwt.WithKey(key.Algorithm(), key)) if err != nil { return "", fmt.Errorf("signing client assertion: %w", err) } diff --git a/pkg/openid/assertion_test.go b/pkg/openid/assertion_test.go index e12fe52..3abe6f0 100644 --- a/pkg/openid/assertion_test.go +++ b/pkg/openid/assertion_test.go @@ -4,8 +4,7 @@ import ( "testing" "time" - "github.com/lestrrat-go/jwx/jwa" - "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwt" "github.com/stretchr/testify/assert" "github.com/nais/wonderwall/pkg/mock" @@ -27,8 +26,7 @@ func TestAssertion(t *testing.T) { publicKey, err := key.PublicKey() assert.NoError(t, err) opts := []jwt.ParseOption{ - jwt.WithValidate(true), - jwt.WithVerify(jwa.SignatureAlgorithm(publicKey.Algorithm()), publicKey), + jwt.WithKey(publicKey.Algorithm(), publicKey), jwt.WithRequiredClaim(jwt.IssuedAtKey), jwt.WithRequiredClaim(jwt.ExpirationKey), jwt.WithRequiredClaim(jwt.JwtIDKey), diff --git a/pkg/openid/clients/configuration.go b/pkg/openid/clients/configuration.go index dfeaa15..05a9924 100644 --- a/pkg/openid/clients/configuration.go +++ b/pkg/openid/clients/configuration.go @@ -1,7 +1,7 @@ package clients import ( - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" "github.com/nais/wonderwall/pkg/openid/scopes" ) diff --git a/pkg/openid/clients/openid.go b/pkg/openid/clients/openid.go index 5c75331..3f0a92d 100644 --- a/pkg/openid/clients/openid.go +++ b/pkg/openid/clients/openid.go @@ -1,7 +1,7 @@ package clients import ( - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" "github.com/nais/wonderwall/pkg/config" "github.com/nais/wonderwall/pkg/openid/scopes" diff --git a/pkg/openid/provider.go b/pkg/openid/provider.go index 7240fe6..454d5c3 100644 --- a/pkg/openid/provider.go +++ b/pkg/openid/provider.go @@ -6,7 +6,7 @@ import ( "sync" "time" - "github.com/lestrrat-go/jwx/jwk" + "github.com/lestrrat-go/jwx/v2/jwk" log "github.com/sirupsen/logrus" "github.com/nais/wonderwall/pkg/config" @@ -27,7 +27,7 @@ type Provider interface { type provider struct { clientConfiguration clients.Configuration configuration *Configuration - jwks *jwk.AutoRefresh + jwksCache *jwk.Cache jwksLock *jwksLock } @@ -46,7 +46,7 @@ func (p provider) GetOpenIDConfiguration() *Configuration { func (p provider) GetPublicJwkSet(ctx context.Context) (*jwk.Set, error) { url := p.configuration.JwksURI - set, err := p.jwks.Fetch(ctx, url) + set, err := p.jwksCache.Get(ctx, url) if err != nil { return nil, fmt.Errorf("provider: fetching jwks: %w", err) } @@ -67,7 +67,7 @@ func (p provider) RefreshPublicJwkSet(ctx context.Context) (*jwk.Set, error) { p.jwksLock.lastRefresh = time.Now() url := p.configuration.JwksURI - set, err := p.jwks.Refresh(ctx, url) + set, err := p.jwksCache.Refresh(ctx, url) if err != nil { return nil, fmt.Errorf("provider: refreshing jwks: %w", err) } @@ -135,9 +135,15 @@ func NewProvider(ctx context.Context, cfg *config.Config) (Provider, error) { } uri := configuration.JwksURI - jwksAutoRefresh := jwk.NewAutoRefresh(ctx) - jwksAutoRefresh.Configure(uri) - _, err = jwksAutoRefresh.Fetch(ctx, uri) + cache := jwk.NewCache(ctx) + + err = cache.Register(uri) + if err != nil { + return nil, fmt.Errorf("registering jwks provider uri to cache: %w", err) + } + + // trigger initial fetch and cache of jwk set + _, err = cache.Refresh(ctx, uri) if err != nil { return nil, fmt.Errorf("initial fetch of jwks from provider: %w", err) } @@ -145,7 +151,7 @@ func NewProvider(ctx context.Context, cfg *config.Config) (Provider, error) { return &provider{ clientConfiguration: clientConfig, configuration: configuration, - jwks: jwksAutoRefresh, + jwksCache: cache, jwksLock: &jwksLock{}, }, nil } diff --git a/pkg/router/session_fallback_test.go b/pkg/router/session_fallback_test.go index 43fafc8..f4c59d3 100644 --- a/pkg/router/session_fallback_test.go +++ b/pkg/router/session_fallback_test.go @@ -1,14 +1,15 @@ package router_test import ( + "context" "encoding/base64" "net/http" "net/http/httptest" "testing" "time" - "github.com/lestrrat-go/jwx/jwa" - jwtlib "github.com/lestrrat-go/jwx/jwt" + "github.com/lestrrat-go/jwx/v2/jwa" + jwtlib "github.com/lestrrat-go/jwx/v2/jwt" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" @@ -152,30 +153,37 @@ func assertCookieExists(t *testing.T, h *router.Handler, cookieName, expectedVal func makeTokens(provider mock.TestProvider) *jwt.Tokens { jwks := *provider.PrivateJwkSet() + jwksPublic, err := provider.GetPublicJwkSet(context.TODO()) + if err != nil { + log.Fatalf("getting public jwk set: %+v", err) + } - signer, ok := jwks.Get(0) + signer, ok := jwks.Key(0) if !ok { log.Fatalf("getting signer") } idToken := jwtlib.New() idToken.Set("jti", "id-token-jti") - signedIdToken, err := jwtlib.Sign(idToken, jwa.RS256, signer) + + signedIdToken, err := jwtlib.Sign(idToken, jwtlib.WithKey(jwa.RS256, signer)) if err != nil { log.Fatalf("signing id_token: %+v", err) } - parsedIdToken, err := jwtlib.Parse(signedIdToken) + + parsedIdToken, err := jwtlib.Parse(signedIdToken, jwtlib.WithKeySet(*jwksPublic)) if err != nil { log.Fatalf("parsing signed id_token: %+v", err) } accessToken := jwtlib.New() accessToken.Set("jti", "access-token-jti") - signedAccessToken, err := jwtlib.Sign(accessToken, jwa.RS256, signer) + + signedAccessToken, err := jwtlib.Sign(accessToken, jwtlib.WithKey(jwa.RS256, signer)) if err != nil { log.Fatalf("signing access_token: %+v", err) } - parsedAccessToken, err := jwtlib.Parse(signedAccessToken) + parsedAccessToken, err := jwtlib.Parse(signedAccessToken, jwtlib.WithKeySet(*jwksPublic)) if err != nil { log.Fatalf("parsing signed access_token: %+v", err) } diff --git a/pkg/router/session_id_test.go b/pkg/router/session_id_test.go index e68ee7b..51ee981 100644 --- a/pkg/router/session_id_test.go +++ b/pkg/router/session_id_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - jwtlib "github.com/lestrrat-go/jwx/jwt" + jwtlib "github.com/lestrrat-go/jwx/v2/jwt" "github.com/stretchr/testify/assert" "github.com/nais/wonderwall/pkg/jwt" diff --git a/pkg/router/templates/error.gohtml b/pkg/router/templates/error.gohtml index 4f53f2c..8e624c6 100644 --- a/pkg/router/templates/error.gohtml +++ b/pkg/router/templates/error.gohtml @@ -90,7 +90,7 @@ font-family: 'Source Sans Pro'; font-weight: 400; font-style: normal; - src: url(data:application/font-woff;base64,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) format("woff"); + src: url(data:application/font-woff;base64,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) format("woff"); } @font-face { @@ -104,7 +104,7 @@ font-family: 'Source Sans Pro'; font-weight: 600; font-style: normal; - src: url(data:application/font-woff;base64,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) format("woff"); + src: url(data:application/font-woff;base64,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) format("woff"); } .app { diff --git a/pkg/session/memory_test.go b/pkg/session/memory_test.go index ac53290..77b177f 100644 --- a/pkg/session/memory_test.go +++ b/pkg/session/memory_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - jwtlib "github.com/lestrrat-go/jwx/jwt" + jwtlib "github.com/lestrrat-go/jwx/v2/jwt" "github.com/nais/liberator/pkg/keygen" "github.com/stretchr/testify/assert" diff --git a/pkg/session/redis_test.go b/pkg/session/redis_test.go index e55a706..998fce2 100644 --- a/pkg/session/redis_test.go +++ b/pkg/session/redis_test.go @@ -7,7 +7,7 @@ import ( "github.com/alicebob/miniredis/v2" "github.com/go-redis/redis/v8" - jwtlib "github.com/lestrrat-go/jwx/jwt" + jwtlib "github.com/lestrrat-go/jwx/v2/jwt" "github.com/nais/liberator/pkg/keygen" "github.com/stretchr/testify/assert"