diff --git a/api/account/api.go b/api/account/api.go index bee50c15..9876b5ca 100644 --- a/api/account/api.go +++ b/api/account/api.go @@ -157,7 +157,8 @@ type Configuration struct { PhysicalIdentificationAllowedRoles []string `json:"physical_identification_allowed_roles"` AllowedBackURLs []string `json:"allowed_back_urls"` AllowInitialPasswordDefinition *bool `json:"allow_initial_password_definition"` - IdentificationURL *string `json:"identification_url"` + IdentificationURL *string `json:"identification_url"` + BOExternalIDPManagementEnabled *bool `json:"bo_external_idp_management_enabled"` } // UpdatePasswordBody is the definition of the expected body content of UpdatePassword method diff --git a/api/management/api.go b/api/management/api.go index a0a8054c..4135f1ea 100644 --- a/api/management/api.go +++ b/api/management/api.go @@ -339,6 +339,7 @@ type RealmAdminConfiguration struct { AutoGeneratedUsernameEnabled *bool `json:"auto_generated_username_enabled"` AutoGeneratedUsernameToggleEnabled *bool `json:"auto_generated_username_toggle_enabled"` RegisterMode *string `json:"register_mode"` + BOExternalIDPManagementEnabled *bool `json:"bo_external_idp_management_enabled"` } // RealmAdminAccreditation struct @@ -916,6 +917,7 @@ func ConvertRealmAdminConfigurationFromDBStruct(conf configuration.RealmAdminCon AutoGeneratedUsernameEnabled: defaultBool(conf.AutoGeneratedUsernameEnabled, false), AutoGeneratedUsernameToggleEnabled: defaultBool(conf.AutoGeneratedUsernameToggleEnabled, false), RegisterMode: defaultString(conf.RegisterMode, "default"), + BOExternalIDPManagementEnabled: defaultBool(conf.BOExternalIDPManagementEnabled, false), } } @@ -952,6 +954,7 @@ func (rac RealmAdminConfiguration) ConvertToDBStruct() configuration.RealmAdminC AutoGeneratedUsernameEnabled: rac.AutoGeneratedUsernameEnabled, AutoGeneratedUsernameToggleEnabled: rac.AutoGeneratedUsernameToggleEnabled, RegisterMode: rac.RegisterMode, + BOExternalIDPManagementEnabled: rac.BOExternalIDPManagementEnabled, } } diff --git a/api/management/api_test.go b/api/management/api_test.go index b102a7d2..9aa37748 100644 --- a/api/management/api_test.go +++ b/api/management/api_test.go @@ -684,6 +684,7 @@ func TestConvertRealmAdminConfiguration(t *testing.T) { assert.False(t, *res.OnboardingStatusEnabled) assert.False(t, *res.AutoGeneratedUsernameEnabled) assert.False(t, *res.AutoGeneratedUsernameToggleEnabled) + assert.False(t, *res.BOExternalIDPManagementEnabled) }) t.Run("Non-empty values", func(t *testing.T) { var mode = "mode" @@ -717,6 +718,7 @@ func TestConvertRealmAdminConfiguration(t *testing.T) { OnboardingStatusEnabled: boolPtr(true), AutoGeneratedUsernameEnabled: boolPtr(true), AutoGeneratedUsernameToggleEnabled: boolPtr(true), + BOExternalIDPManagementEnabled: boolPtr(true), RegisterMode: ptr("default"), } var res = ConvertRealmAdminConfigurationFromDBStruct(config) @@ -749,6 +751,7 @@ func TestConvertRealmAdminConfiguration(t *testing.T) { assert.True(t, *res.OnboardingStatusEnabled) assert.True(t, *res.AutoGeneratedUsernameEnabled) assert.True(t, *res.AutoGeneratedUsernameToggleEnabled) + assert.True(t, *res.BOExternalIDPManagementEnabled) }) } diff --git a/go.mod b/go.mod index 293e801e..5076a046 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/cloudtrust/keycloak-bridge go 1.25.3 require ( - github.com/cloudtrust/common-service/v2 v2.17.0 + github.com/cloudtrust/common-service/v2 v2.17.1 github.com/cloudtrust/httpclient v1.6.0 github.com/cloudtrust/kafka-client v1.7.2 github.com/cloudtrust/keycloak-client/v2 v2.17.0 @@ -27,7 +27,6 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/IBM/sarama v1.46.3 // indirect - github.com/VividCortex/gohistogram v1.0.0 // indirect github.com/coreos/go-oidc/v3 v3.17.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/eapache/go-resiliency v1.7.0 // indirect @@ -46,7 +45,7 @@ require ( github.com/jcmturner/gofork v1.7.6 // indirect github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/klauspost/compress v1.18.1 // indirect + github.com/klauspost/compress v1.18.4 // indirect github.com/nyaruka/phonenumbers v1.6.10 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect @@ -56,11 +55,10 @@ require ( github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - go.uber.org/atomic v1.11.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.48.0 // indirect golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect - golang.org/x/net v0.50.0 // indirect + golang.org/x/net v0.51.0 // indirect golang.org/x/oauth2 v0.35.0 // indirect golang.org/x/sys v0.41.0 // indirect golang.org/x/text v0.34.0 // indirect diff --git a/go.sum b/go.sum index 1ef2ec8f..acb96672 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,9 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/IBM/sarama v1.46.3 h1:njRsX6jNlnR+ClJ8XmkO+CM4unbrNr/2vB5KK6UA+IE= github.com/IBM/sarama v1.46.3/go.mod h1:GTUYiF9DMOZVe3FwyGT+dtSPceGFIgA+sPc5u6CBwko= -github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/cloudtrust/common-service/v2 v2.17.0 h1:0OWOZ+VQ0lWupp+wXPMKjgJFqLiXXDHQWHPmInrtK6k= -github.com/cloudtrust/common-service/v2 v2.17.0/go.mod h1:p1jDdOVLkYAg6/0u9D9Akg+QBj1VbIT5aktbJ3DcQ14= +github.com/cloudtrust/common-service/v2 v2.17.1 h1:Um/k3DOXBskOh6KXKFozrRNkTuybHLXYdM5ms5O2qZk= +github.com/cloudtrust/common-service/v2 v2.17.1/go.mod h1:WV1j0JHc2vN5CEGom8yXgfeTXHBQezoCgA896hOlX8w= github.com/cloudtrust/httpclient v1.6.0 h1:/E/y2wZNyUIjADbP3RLI2pLTWdNvcFSLe1MeRD6RlN4= github.com/cloudtrust/httpclient v1.6.0/go.mod h1:CK0idOHAQ2CiN2GFOwIYP5hDl2tfUgGdTI9n7Ygbnrs= github.com/cloudtrust/kafka-client v1.7.2 h1:wezQkWb4nMA2u6PP+x8e54GrZTvEOHQkFuyOziB7Ea0= @@ -75,8 +71,8 @@ github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh6 github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= -github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= -github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= +github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c= +github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -115,9 +111,6 @@ github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjb github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -128,8 +121,6 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= @@ -138,8 +129,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= -golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= @@ -154,12 +143,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= -golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= -golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= -golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= -golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= -golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= +golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -176,8 +161,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -187,8 +170,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= diff --git a/pkg/account/component.go b/pkg/account/component.go index 9f020823..b14007c3 100644 --- a/pkg/account/component.go +++ b/pkg/account/component.go @@ -548,6 +548,7 @@ func (c *component) GetConfiguration(ctx context.Context, realmIDOverride string OnboardingUserEditingEnabled: config.OnboardingUserEditingEnabled, AllowInitialPasswordDefinition: config.APISelfInitialPasswordDefinitionAllowed, IdentificationURL: config.IdentificationURL, + BOExternalIDPManagementEnabled: adminConfig.BOExternalIDPManagementEnabled, } if realmIDOverride != "" { diff --git a/vendor/modules.txt b/vendor/modules.txt index 53d33e02..bb4d2208 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -7,7 +7,7 @@ filippo.io/edwards25519/field github.com/IBM/sarama # github.com/VividCortex/gohistogram v1.0.0 ## explicit -# github.com/cloudtrust/common-service/v2 v2.17.0 +# github.com/cloudtrust/common-service/v2 v2.17.1-0.20260225124935-dc4023bd830e ## explicit; go 1.25.3 github.com/cloudtrust/common-service/v2 github.com/cloudtrust/common-service/v2/configuration @@ -148,7 +148,7 @@ github.com/jcmturner/gokrb5/v8/types ## explicit; go 1.13 github.com/jcmturner/rpc/v2/mstypes github.com/jcmturner/rpc/v2/ndr -# github.com/klauspost/compress v1.18.1 +# github.com/klauspost/compress v1.18.4 ## explicit; go 1.23 github.com/klauspost/compress github.com/klauspost/compress/flate