Enviar IDs int64 para o navegador como strings, sem tocar em sessões

FeatureSecurityService
Shipped
15 de agosto de 2026 às 19:58 UTC
Author
Kamo
Commit
88519a3

Os IDs do BarataDB unique rowid() são 19 dígitos, passados Número. MAX SAFE INTEGER, então um ID enviado como um número JSON chega no navegador com seus dígitos baixos arredondados e cada procura feita com ele falha. 163 respostas de manipulador colocar em bruto Long org e membros IDs em Mapas ad-hoc, então isso não era algo DTO-por-DTO trabalho poderia fechar. A razão pela qual ficou aberto é que a solução óbvia derruba a plataforma. O cartógrafo que serve respostas é o mesmo bean KSessionService escreve o mapa de sessão *** para Redis com, e ids são lidos de volta para fora desse mapa por ((Número) ...).longValue() -- 65 vezes neste serviço, e novamente em DocsService, MediaService e ConversõesService, que lê a mesma carga útil. Citação longa sobre o feijão e cada um desses lançamentos. Assim, a regra é anexada aos conversores de mensagens MVC, em vez disso, em uma cópia. Respostas obter ele; sessões, editores NATS e os clientes de serviço a serviço manter o mapper numérico Eles sempre tiveram. Também não é um cobertor Longo -> String. Long não é sinônimo de id aqui: epoch milis no SecurityRoleDTO e nos DTOs tipo ramo e modelo de segurança, LeadIntakeEndpointDTO contadores, Page.getTotalElements(), bytes e durações são todos Longs o navegador faz aritmética e novo Date() on, e a maioria chega dentro de Mapas onde um mix-in não tem nenhuma chave para anexar. O serializador muda de valor: acima do intervalo seguro JS escreve uma string, abaixo dela um número. Cada único rowid está acima, cada timestamp, contagem e o tamanho está abaixo, e os campos que ninguém classificou ainda são tratados pela mesma regra. Verificado contra os pares que leram estas respostas: KamoJwtService e DavAuthFilter já aceitar qualquer forma (instanceof Number ? ... : Long.parseLong(...)).

All changes

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços