Skip to content

Commit d438f39

Browse files
authored
✨ Update gocloak for RHBK (#780)
Signed-off-by: Jason Montleon <[email protected]>
1 parent 24908b0 commit d438f39

10 files changed

+27
-31
lines changed

auth/auth_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package auth
33
import (
44
"testing"
55

6-
"github.com/golang-jwt/jwt/v4"
6+
"github.com/golang-jwt/jwt/v5"
77
"github.com/onsi/gomega"
88
)
99

auth/builtin.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package auth
33
import (
44
"strings"
55

6-
"github.com/golang-jwt/jwt/v4"
6+
"github.com/golang-jwt/jwt/v5"
77
liberr "github.com/jortel/go-utils/error"
88
"gorm.io/gorm"
99
)

auth/keycloak.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import (
66
"strings"
77
"time"
88

9-
"github.com/Nerzal/gocloak/v10"
10-
"github.com/golang-jwt/jwt/v4"
9+
"github.com/Nerzal/gocloak/v13"
10+
"github.com/golang-jwt/jwt/v5"
1111
liberr "github.com/jortel/go-utils/error"
1212
)
1313

1414
// NewKeycloak builds a new Keycloak auth provider.
1515
func NewKeycloak(host, realm string) (p Provider) {
16-
client := gocloak.NewClient(host)
16+
client := gocloak.NewClient(host, gocloak.SetAuthRealms("auth/realms"), gocloak.SetAuthAdminRealms("auth/admin/realms"))
1717
client.RestyClient().SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
1818
p = &Keycloak{
1919
host: host,
@@ -25,7 +25,7 @@ func NewKeycloak(host, realm string) (p Provider) {
2525

2626
// Keycloak auth provider
2727
type Keycloak struct {
28-
client gocloak.GoCloak
28+
client *gocloak.GoCloak
2929
host string
3030
realm string
3131
}
@@ -80,12 +80,12 @@ func (r *Keycloak) Authenticate(request *Request) (jwToken *jwt.Token, err error
8080
err = liberr.Wrap(&NotAuthenticated{Token: token})
8181
return
8282
}
83-
claims, cast := jwToken.Claims.(*jwt.MapClaims)
83+
claims, cast := jwToken.Claims.(jwt.MapClaims)
8484
if !cast {
8585
err = liberr.Wrap(&NotAuthenticated{Token: token})
8686
return
8787
}
88-
v, found := (*claims)["preferred_username"]
88+
v, found := claims["preferred_username"]
8989
if !found {
9090
err = liberr.Wrap(&NotAuthenticated{Token: token})
9191
return
@@ -95,7 +95,7 @@ func (r *Keycloak) Authenticate(request *Request) (jwToken *jwt.Token, err error
9595
err = liberr.Wrap(&NotAuthenticated{Token: token})
9696
return
9797
}
98-
v, found = (*claims)["scope"]
98+
v, found = claims["scope"]
9999
if !found {
100100
err = liberr.Wrap(&NotAuthenticated{Token: token})
101101
return
@@ -110,8 +110,8 @@ func (r *Keycloak) Authenticate(request *Request) (jwToken *jwt.Token, err error
110110

111111
// Scopes decodes a list of scopes from the token.
112112
func (r *Keycloak) Scopes(jwToken *jwt.Token) (scopes []Scope) {
113-
claims := jwToken.Claims.(*jwt.MapClaims)
114-
for _, s := range strings.Fields((*claims)["scope"].(string)) {
113+
claims := jwToken.Claims.(jwt.MapClaims)
114+
for _, s := range strings.Fields(claims["scope"].(string)) {
115115
scope := BaseScope{}
116116
scope.With(s)
117117
scopes = append(scopes, &scope)
@@ -121,7 +121,7 @@ func (r *Keycloak) Scopes(jwToken *jwt.Token) (scopes []Scope) {
121121

122122
// User resolves token to Keycloak username.
123123
func (r *Keycloak) User(jwToken *jwt.Token) (user string) {
124-
claims, _ := jwToken.Claims.(*jwt.MapClaims)
125-
user, _ = (*claims)["preferred_username"].(string)
124+
claims, _ := jwToken.Claims.(jwt.MapClaims)
125+
user, _ = claims["preferred_username"].(string)
126126
return
127127
}

auth/provider.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"strings"
77

8-
"github.com/golang-jwt/jwt/v4"
8+
"github.com/golang-jwt/jwt/v5"
99
"github.com/jortel/go-utils/logr"
1010
)
1111

auth/reconcile.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import (
77
"strings"
88
"time"
99

10-
"github.com/Nerzal/gocloak/v10"
10+
"github.com/Nerzal/gocloak/v13"
1111
liberr "github.com/jortel/go-utils/error"
1212
)
1313

1414
// NewReconciler builds a new Keycloak realm reconciler.
1515
func NewReconciler(host, realm, id, secret, admin, pass, adminRealm string) (r Reconciler) {
16-
client := gocloak.NewClient(host)
16+
client := gocloak.NewClient(host, gocloak.SetAuthRealms("auth/realms"), gocloak.SetAuthAdminRealms("auth/admin/realms"))
1717
client.RestyClient().SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
1818
r = Reconciler{
1919
client: client,
@@ -29,7 +29,7 @@ func NewReconciler(host, realm, id, secret, admin, pass, adminRealm string) (r R
2929

3030
// Keycloak realm reconciler
3131
type Reconciler struct {
32-
client gocloak.GoCloak
32+
client *gocloak.GoCloak
3333
realm string
3434
id string
3535
secret string

auth/request.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package auth
33
import (
44
"errors"
55

6-
"github.com/golang-jwt/jwt/v4"
6+
"github.com/golang-jwt/jwt/v5"
77
"gorm.io/gorm"
88
)
99

go.mod

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ module github.com/konveyor/tackle2-hub
33
go 1.20
44

55
require (
6-
github.com/Nerzal/gocloak/v10 v10.0.1
6+
github.com/Nerzal/gocloak/v13 v13.9.0
77
github.com/PaesslerAG/gval v1.2.2
88
github.com/andygrunwald/go-jira v1.16.0
99
github.com/gin-gonic/gin v1.9.1
1010
github.com/go-logr/logr v1.4.1
1111
github.com/go-playground/validator/v10 v10.14.0
12-
github.com/golang-jwt/jwt/v4 v4.5.0
12+
github.com/golang-jwt/jwt/v5 v5.0.0
1313
github.com/google/uuid v1.6.0
1414
github.com/jortel/go-utils v0.1.4
1515
github.com/konveyor/tackle2-seed v0.0.0-20231025181853-8ce94f70f744
@@ -51,6 +51,7 @@ require (
5151
github.com/go-resty/resty/v2 v2.12.0 // indirect
5252
github.com/goccy/go-json v0.10.2 // indirect
5353
github.com/gogo/protobuf v1.3.2 // indirect
54+
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
5455
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
5556
github.com/golang/protobuf v1.5.3 // indirect
5657
github.com/google/gnostic v0.5.7-v3refs // indirect

go.sum

+4-9
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
22
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
33
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
44
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
5-
github.com/Nerzal/gocloak/v10 v10.0.1 h1:W9pyD4I6w57ceNmjJoS4mXezBAxpupj11ytxper2KA8=
6-
github.com/Nerzal/gocloak/v10 v10.0.1/go.mod h1:18jh1lwSHEJeSvmdH+08JyJU/XjPdNYLWEZ7paDB2k8=
5+
github.com/Nerzal/gocloak/v13 v13.9.0 h1:YWsJsdM5b0yhM2Ba3MLydiOlujkBry4TtdzfIzSVZhw=
6+
github.com/Nerzal/gocloak/v13 v13.9.0/go.mod h1:YYuDcXZ7K2zKECyVP7pPqjKxx2AzYSpKDj8d6GuyM10=
77
github.com/PaesslerAG/gval v1.2.2 h1:Y7iBzhgE09IGTt5QgGQ2IdaYYYOU134YGHBThD+wm9E=
88
github.com/PaesslerAG/gval v1.2.2/go.mod h1:XRFLwvmkTEdYziLdaCeCa5ImcGVrfQbeNUbVR+C6xac=
99
github.com/PaesslerAG/jsonpath v0.1.0 h1:gADYeifvlqK3R3i2cR5B4DGgxLXIPb3TRTH1mGi0jPI=
@@ -74,18 +74,18 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn
7474
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
7575
github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
7676
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
77-
github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q=
7877
github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA=
7978
github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0=
8079
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
8180
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
8281
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
8382
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
8483
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
85-
github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
8684
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
8785
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
8886
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
87+
github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE=
88+
github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
8989
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
9090
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
9191
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -269,9 +269,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
269269
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
270270
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
271271
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
272-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
273272
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
274-
golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
275273
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
276274
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
277275
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
@@ -295,9 +293,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h
295293
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
296294
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
297295
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
298-
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
299296
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
300-
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
301297
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
302298
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
303299
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -389,7 +385,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
389385
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
390386
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
391387
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
392-
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
393388
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
394389
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
395390
gorm.io/driver/sqlite v1.5.2 h1:TpQ+/dqCY4uCigCFyrfnrJnrW9zjpelWVoEVNy5qJkc=

task/auth.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"path"
77

8-
"github.com/golang-jwt/jwt/v4"
8+
"github.com/golang-jwt/jwt/v5"
99
"github.com/konveyor/tackle2-hub/auth"
1010
"github.com/konveyor/tackle2-hub/model"
1111
"gorm.io/gorm"

task/task.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"strings"
1010
"time"
1111

12-
"github.com/golang-jwt/jwt/v4"
12+
"github.com/golang-jwt/jwt/v5"
1313
liberr "github.com/jortel/go-utils/error"
1414
"github.com/konveyor/tackle2-hub/auth"
1515
crd "github.com/konveyor/tackle2-hub/k8s/api/tackle/v1alpha1"

0 commit comments

Comments
 (0)