Salvando uma integração calendário/contatos nunca em branco ou solta suas credenciais armazenadas

FixEmailService
Navios
17 de setembro de 2026 às 04:31 UTC
Autor
Kamo
Enviar
d35858f

As credenciais de uma integração de contatos Json foi substituído por qualquer um salvo enviado. A página CalDAV/CardDAV da org envia tudo quatro campos de servidor (vazio — eles nunca mostram o que é armazenado) em cada gravação de um servidor Apple ou personalizado, então pressionando Salvar para alterar um switch de sincronização sobrescrito o endereço armazenado, nome de usuário e senha com strings vazias. A O diálogo de fonte da página de contatos envia apenas os campos digitados, de modo que alterar uma senha deixou cair o endereço e o nome de usuário. IntegrationSettingsService agora distingue os dois tipos de escrita credencial: - Uma configuração salvar (org PUT, membro POST/PUT) MERGA: um campo em branco ou nulo é "não fornecido" e mantém seu armazenado valor; todos os campos em branco não altera nada; um campo digitado substitui sua contraparte armazenada e todos os outros armazenados O campo fica. Um salvamento que muda o provedor começa do nada, para que os tokens de uma OAuth Grant nunca sejam transportados para as credenciais de um ID Apple ou o contrário. Uma senha armazenada está ligada ao caldavUrl, carddavUrl e nome de usuário com o qual foi salvo: alterar qualquer um deles sem digitar a senha é recusado com um 400 em vez de enviando a senha antiga para um servidor ou conta diferente. Uma credencial que não é um objeto JSON é armazenada como enviado, como antes. - Um consentimento OAuth REPRESENTA o subsídio inteiro (novo salvoOrgOAuthGrant para o callback org; saveMemberOAuth). Uma mesclagem o provedor não reemitiu, ou o e-mail de outra conta. O controlador responde IlegalArgumentException a partir destes salva com 400 em vez de 500. As actualizações de fichas (aqui e em daemonservice) leia e reescreva todo o mapa descriptografado na entidade, e ProviderRegistry / GenéricosDavProvider só o leu; nenhum deles muda. Não há linhas de contato integrações na produção, então Nada foi limpo ainda. IntegrationSettingsServiceTest: campos em branco mantêm o servidor, um campo digitado substitui apenas a si mesmo, um novo endereço/conta sem a senha é recusado e não muda nada (o mesmo endereço ressentido não é uma mudança), um switch de provedor deixa cair as chaves do outro provedor, org e membro OAuth substituem. Verificada por mutação: substituição em vez de mesclar, removendo a ligação de senha, ignorando o switch do provedor, e mesclando qualquer concessão OAuth Cada um falha num teste. Suíte completa: 1763 testes, 0 falhas.

Todas as alterações

Como o que vês no transporte?

Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.

Começar Livre Para SempreVer Preços