in controllers/keycloakclient/keycloakclient_controller.go [159:202]
func (r *ReconcileKeycloakClient) applyDefaults(ctx context.Context, keycloakClient *keycloakApi.KeycloakClient) (bool, error) {
if keycloakClient.Spec.Attributes == nil {
keycloakClient.Spec.Attributes = make(map[string]string)
}
updated := false
if _, ok := keycloakClient.Spec.Attributes[clientAttributeLogoutRedirectUris]; !ok {
// set default value for logout redirect uris to "+" is required for correct logout from keycloak
keycloakClient.Spec.Attributes[clientAttributeLogoutRedirectUris] = clientAttributeLogoutRedirectUrisDefValue
updated = true
}
if keycloakClient.Spec.RealmRef.Name == "" {
realmName, err := r.getKeycloakCRName(ctx, keycloakClient.Spec.TargetRealm, keycloakClient.Namespace)
if err != nil {
return false, fmt.Errorf("unable to get keycloak cr name: %w", err)
}
keycloakClient.Spec.RealmRef = common.RealmRef{
Kind: keycloakApi.KeycloakRealmKind,
Name: realmName,
}
updated = true
}
if keycloakClient.Spec.WebOrigins == nil {
keycloakClient.Spec.WebOrigins = []string{
keycloakClient.Spec.WebUrl,
}
updated = true
}
if updated {
if err := r.client.Update(ctx, keycloakClient); err != nil {
return false, fmt.Errorf("failed to update keycloak client default values: %w", err)
}
return true, nil
}
return false, nil
}