- Enviado
- 24 de setembro de 2026 às 00:15 UTC
- Autor
- Kamo
- Confirmação
- 279723a
A mesma alteração que o mediaservice: o kamo- internal está a mover o ID da sessão *** fora do navegador JavaScript, sessão desligadaArmazenar e desligar cada URL WebSocket (`?***=<128-hex id>`, registado na íntegra pelo registo de acesso da Traefik) e num Chave única de curta duração que menta via POST /api/generate-otk. Redis `OTK<otk>` -> o 128-hex *** id. Ambos os serviços devem aceitá-lo antes O kamo-interno muda, por isso esta nave primeiro. WebSocketAuthInterceptor agora lê um parâmetro de consulta 'otk' e resolve-o Não, não, não. (novo, ao lado do Validação de consumo existenteAndConsumeOneTimeKey usada para X-OTK): esta é uma Endpoint SockJS, então uma conexão do navegador pode fazer mais de um aperto de mão à medida que sonda o transporte, e uma leitura consumidora quebraria o recuo — o O TTL curto da própria chave o liga. Precedência é otk, em seguida, o legado *** consulta param, em seguida, o cookie ***. Um otk que está presente mas não resolve é uma rejeição dura: nunca cai através de *** ou do cookie, que pertence a qualquer página atualizada por último e, de outro modo, silenciosamente autenticar uma sessão diferente. Nada. alterações na resolução da sessão passada. O otk e o ID resolvido nunca são registados, igual ao código circundante. Testes: KSessionServiceOneTimeKeyTest e WebSocketAuthInterceptorTest cover resolução otk e não consumo, a precedência de rejeição- sobre- não-resolvido- otk regra, legado *** ainda funcionando, e rejeição sem credibilidade. Tanto o a regra de precedência e a regra de exclusão foram verificadas manualmente (revertendo cada um para a forma antiga / buggy reproduz uma corrida vermelha).
