in pkg/client/keycloak/adapter/gocloak_adapter.go [260:306]
func Make(ctx context.Context, conf GoCloakConfig, log logr.Logger, restyClient *resty.Client) (*GoCloakAdapter, error) {
if restyClient == nil {
restyClient = resty.New()
}
if conf.InsecureSkipVerify {
restyClient.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
}
if conf.RootCertificate != "" {
restyClient.SetRootCertificateFromString(conf.RootCertificate)
}
kcCl := gocloak.NewClient(conf.Url)
kcCl.SetRestyClient(restyClient)
token, err := kcCl.LoginAdmin(ctx, conf.User, conf.Password, "master")
if err == nil {
return &GoCloakAdapter{
client: kcCl,
token: token,
log: log,
basePath: conf.Url,
legacyMode: false,
}, nil
}
if isNotLegacyResponseCode(err) {
return nil, fmt.Errorf("unexpected error received while trying to get realms using the modern client: %w", err)
}
kcCl = gocloak.NewClient(conf.Url, gocloak.SetLegacyWildFlySupport())
kcCl.SetRestyClient(restyClient)
token, err = kcCl.LoginAdmin(ctx, conf.User, conf.Password, "master")
if err != nil {
return nil, errors.Wrapf(err, "cannot login to keycloak server with user: %s", conf.User)
}
return &GoCloakAdapter{
client: kcCl,
token: token,
log: log,
basePath: conf.Url,
legacyMode: true,
}, nil
}