Salvataggio di un calendario/contatti di integrazione mai vuoti o gocce le sue credenziali memorizzate

FixEmailService
Spegnimento
17 settembre 2026 alle ore 04:31 UTC
Autore
Kamo
Impegno
d35858f

Le credenziali di un'integrazione di contatto Json sono state sostituite da qualsiasi salvataggio inviato. La scheda org CalDAV/CardDAV invia tutti quattro campi server (vuoto — non mostrano mai ciò che è memorizzato) su ogni salvataggio di un server Apple o personalizzato, quindi premendo Salva per cambiare un interruttore di sincronizzazione overrote l'indirizzo memorizzato, nome utente e password con stringhe vuote. The La finestra di dialogo della pagina di contatti invia solo i campi digitati, quindi la modifica di una password ha lasciato cadere l'indirizzo e il nome utente. IntegrationSettingsService ora distingue i due tipi di credenziali scrivere: - Impostazioni salvate (org PUT, membro POST/PUT) MERGES: un campo vuoto o nullo "non fornito" e mantiene il suo memorizzato valore; tutti i campi vuoti non cambia nulla; un campo digitato sostituisce la sua controparte memorizzata e ogni altro memorizzato il campo rimane. Un salvataggio che cambia il fornitore inizia dal nulla, quindi i gettoni di una sovvenzione OAuth non vengono mai portati le credenziali di un ID Apple o il rovescio. Una password memorizzata è legata alla caldavUrl, carddavUrl e nome utente che è stato salvato con: cambiare uno di loro senza digitare la password è rifiutato con un 400 piuttosto che inviando la vecchia password a un altro server o account. Una credenziale che non è un oggetto JSON viene memorizzata come inviato, come prima. - Un consenso OAuth REPLACES l'intero contributo (nuovo salvataggioOrgOAuthGrant per il callback org; saveMemberOAuth). Una fusione ci avrebbe mantenuto un token di aggiornamento il fornitore non ha ristampato, o un'e-mail di un altro account. Il controller risponde IllegalArgumentException da questi risparmi con 400 invece di 500. I rinfrescanti token (qui e in daemonservice) leggere e riscrivere l'intera mappa decifrata sull'entità, e ProviderRegistry / GenericDavProvider lo legge solo; nessuno di loro cambia. Non ci sono file contact integrations in produzione, quindi Non e' ancora stato cancellato nulla. IntegrationSettingsServiceTest: i campi vuoti mantengono il server, un campo digitato sostituisce solo se stesso, un nuovo indirizzo/account senza la password viene rifiutata e non cambia nulla (lo stesso indirizzo non è un cambiamento), un interruttore del fornitore abbassa le chiavi dell'altro fornitore, org e i contributi OAuth membri sostituire. Mutation-checked: sostituzione invece di fondersi, rimuovere il vincolo della password, ignorando l'interruttore del fornitore, e fondendo OAuth Grant ogni fallisce un test. Suite completa: 1763 test, 0 guasti.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo