From 5b4c8da23ff3efb58a1133cf367c0df021e60642 Mon Sep 17 00:00:00 2001 From: shubangmck Date: Mon, 28 Oct 2024 23:19:00 +0530 Subject: [PATCH 1/4] fixes issuer URL parsing --- jwtverifier.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jwtverifier.go b/jwtverifier.go index 4c87afb..b329f46 100644 --- a/jwtverifier.go +++ b/jwtverifier.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "net/http" + "net/url" "regexp" "strings" "time" @@ -352,7 +353,11 @@ func (j *JwtVerifier) validateIss(issuer interface{}) error { } func (j *JwtVerifier) getMetaData() (map[string]interface{}, error) { - metaDataUrl := j.Issuer + j.Discovery.GetWellKnownUrl() + + metaDataUrl, err := url.JoinPath(j.Issuer, j.Discovery.GetWellKnownUrl()) + if err != nil { + return nil, fmt.Errorf("unable to create metadata URL:%s", err.Error()) + } value, err := j.metadataCache.Get(metaDataUrl) if err != nil { From 2a4c5df4ccb64240e4c5eabf0ffaf64abb4e95b1 Mon Sep 17 00:00:00 2001 From: shubangmck Date: Tue, 29 Oct 2024 08:26:03 +0530 Subject: [PATCH 2/4] Update go.mod --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index e3d407d..e2e194e 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/okta/okta-jwt-verifier-golang/v2 +module github.com/shubhangmck/okta-jwt-verifier-golang/v2 go 1.19 From 293f142205e6e575dfce5e6143b0cd3cda6517be Mon Sep 17 00:00:00 2001 From: shubangmck Date: Tue, 29 Oct 2024 08:27:44 +0530 Subject: [PATCH 3/4] reverts module --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index e2e194e..e3d407d 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/shubhangmck/okta-jwt-verifier-golang/v2 +module github.com/okta/okta-jwt-verifier-golang/v2 go 1.19 From f7b0574038c1896dca48cac4490eed4239b66b47 Mon Sep 17 00:00:00 2001 From: shubangmck Date: Mon, 6 Jan 2025 17:17:21 +0530 Subject: [PATCH 4/4] upates module name --- adaptors/lestrratGoJwx/lestrratGoJwx.go | 6 ++++-- discovery/oidc/oidc.go | 2 +- go.mod | 2 +- jwtverifier.go | 12 ++++++------ jwtverifier_test.go | 6 +++--- utils/cache_example_test.go | 4 ++-- utils/cache_test.go | 2 +- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/adaptors/lestrratGoJwx/lestrratGoJwx.go b/adaptors/lestrratGoJwx/lestrratGoJwx.go index 6a54a2e..31e3101 100644 --- a/adaptors/lestrratGoJwx/lestrratGoJwx.go +++ b/adaptors/lestrratGoJwx/lestrratGoJwx.go @@ -25,8 +25,8 @@ import ( "github.com/lestrrat-go/jwx/v2/jwk" "github.com/lestrrat-go/jwx/v2/jws" - "github.com/okta/okta-jwt-verifier-golang/v2/adaptors" - "github.com/okta/okta-jwt-verifier-golang/v2/utils" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/adaptors" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/utils" ) func (lgj *LestrratGoJwx) fetchJwkSet(jwkUri string) (interface{}, error) { @@ -61,11 +61,13 @@ func (lgj *LestrratGoJwx) Decode(jwt string, jwkUri string) (interface{}, error) } jwkSet, ok := value.(jwk.Set) + if !ok { return nil, fmt.Errorf("could not cast %v to jwk.Set", value) } token, err := jws.Verify([]byte(jwt), jws.WithKeySet(jwkSet)) + if err != nil { return nil, err } diff --git a/discovery/oidc/oidc.go b/discovery/oidc/oidc.go index deb97ae..315f982 100644 --- a/discovery/oidc/oidc.go +++ b/discovery/oidc/oidc.go @@ -16,7 +16,7 @@ package oidc -import "github.com/okta/okta-jwt-verifier-golang/v2/discovery" +import "github.com/shubangmck/okta-jwt-verifier-golang/v2/discovery" type Oidc struct { wellKnownUrl string diff --git a/go.mod b/go.mod index e3d407d..a97f803 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/okta/okta-jwt-verifier-golang/v2 +module github.com/shubangmck/okta-jwt-verifier-golang/v2 go 1.19 diff --git a/jwtverifier.go b/jwtverifier.go index b329f46..8153a04 100644 --- a/jwtverifier.go +++ b/jwtverifier.go @@ -26,12 +26,12 @@ import ( "strings" "time" - "github.com/okta/okta-jwt-verifier-golang/v2/adaptors" - "github.com/okta/okta-jwt-verifier-golang/v2/adaptors/lestrratGoJwx" - "github.com/okta/okta-jwt-verifier-golang/v2/discovery" - "github.com/okta/okta-jwt-verifier-golang/v2/discovery/oidc" - "github.com/okta/okta-jwt-verifier-golang/v2/errors" - "github.com/okta/okta-jwt-verifier-golang/v2/utils" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/adaptors" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/adaptors/lestrratGoJwx" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/discovery" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/discovery/oidc" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/errors" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/utils" ) var ( diff --git a/jwtverifier_test.go b/jwtverifier_test.go index 6a8ed3f..6f35cc5 100644 --- a/jwtverifier_test.go +++ b/jwtverifier_test.go @@ -31,9 +31,9 @@ import ( "time" "github.com/jarcoal/httpmock" - "github.com/okta/okta-jwt-verifier-golang/v2/adaptors/lestrratGoJwx" - "github.com/okta/okta-jwt-verifier-golang/v2/discovery/oidc" - "github.com/okta/okta-jwt-verifier-golang/v2/utils" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/adaptors/lestrratGoJwx" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/discovery/oidc" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/utils" "github.com/stretchr/testify/require" ) diff --git a/utils/cache_example_test.go b/utils/cache_example_test.go index b3ea757..649dc96 100644 --- a/utils/cache_example_test.go +++ b/utils/cache_example_test.go @@ -4,8 +4,8 @@ import ( "fmt" "time" - jwtverifier "github.com/okta/okta-jwt-verifier-golang/v2" - "github.com/okta/okta-jwt-verifier-golang/v2/utils" + jwtverifier "github.com/shubangmck/okta-jwt-verifier-golang/v2" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/utils" ) // ForeverCache caches values forever diff --git a/utils/cache_test.go b/utils/cache_test.go index eec3b14..d3917e9 100644 --- a/utils/cache_test.go +++ b/utils/cache_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/okta/okta-jwt-verifier-golang/v2/utils" + "github.com/shubangmck/okta-jwt-verifier-golang/v2/utils" ) type Value struct {