mirror of
https://github.com/minio/minio.git
synced 2025-04-10 14:37:53 -04:00
fix: openid config provider not initialized correctly (#14399)
Up until now `InitializeProvider` method of `Config` struct was implemented on a value receiver which is why changes on `provider` field where never reflected to method callers. In order to fix this issue, the method was implemented on a pointer receiver.
This commit is contained in:
parent
1bfbe354f5
commit
0913eb6655
@ -155,7 +155,7 @@ const (
|
|||||||
// InitializeProvider initializes if any additional vendor specific
|
// InitializeProvider initializes if any additional vendor specific
|
||||||
// information was provided, initialization will return an error
|
// information was provided, initialization will return an error
|
||||||
// initial login fails.
|
// initial login fails.
|
||||||
func (r Config) InitializeProvider(kvs config.KVS) error {
|
func (r *Config) InitializeProvider(kvs config.KVS) error {
|
||||||
vendor := env.Get(EnvIdentityOpenIDVendor, kvs.Get(Vendor))
|
vendor := env.Get(EnvIdentityOpenIDVendor, kvs.Get(Vendor))
|
||||||
if vendor == "" {
|
if vendor == "" {
|
||||||
return nil
|
return nil
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
jwtg "github.com/golang-jwt/jwt/v4"
|
jwtg "github.com/golang-jwt/jwt/v4"
|
||||||
|
"github.com/minio/minio/internal/config"
|
||||||
jwtm "github.com/minio/minio/internal/jwt"
|
jwtm "github.com/minio/minio/internal/jwt"
|
||||||
xnet "github.com/minio/pkg/net"
|
xnet "github.com/minio/pkg/net"
|
||||||
)
|
)
|
||||||
@ -230,3 +231,27 @@ func TestExpCorrect(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestKeycloakProviderInitialization(t *testing.T) {
|
||||||
|
testConfig := Config{
|
||||||
|
DiscoveryDoc: DiscoveryDoc{
|
||||||
|
TokenEndpoint: "http://keycloak.test/token/endpoint",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
testKvs := config.KVS{}
|
||||||
|
testKvs.Set(Vendor, "keycloak")
|
||||||
|
testKvs.Set(KeyCloakRealm, "TestRealm")
|
||||||
|
testKvs.Set(KeyCloakAdminURL, "http://keycloak.test/auth/admin")
|
||||||
|
|
||||||
|
if testConfig.provider != nil {
|
||||||
|
t.Errorf("Empty config cannot have any provider!")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := testConfig.InitializeProvider(testKvs); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if testConfig.provider == nil {
|
||||||
|
t.Errorf("keycloak provider must be initialized!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user