Carrier-figura de dirección SMS webhook (MS1 Task 2)

FeatureVOIPService
Se descapó
27 de agosto de 2026 a las 18:34 UTC
Autor
Kamo
Compromit
1899050

POST ************* -- forma-codificado o JSON, custodiado por el CARRIER'S OWN SIGNATURE. Por qué un nuevo endpoint. /api/voip/webhook no puede recibir un STOP y falla en silencio: lereTree(s) el cuerpo sin restricción de "consumes", cada transportista de texto a granel postes ************* el parse lanza, la excepción es Tragado y al portaaviones se le responde 200 OK, así que nunca vuelve a intentarlo. Confirmado en la fuente actual antes de escribir esto. Por qué este camino. ************* tiene "/api/bulktext/send" y coincide con startsCon, por lo que cualquier cosa bajordora exige un X-Internal-Auth cabecera que un portaaviones no puede enviar. /api/bulktext/inbound is a SIBLING de /send, es añadido a **************** y no está deliberadamente registrado en InternalAuthFilter. Firma Twilio: HMAC-SHA1 a través de la URL completa (cadena de presentación incluida) más POST parámetros adjuntos nombre-entonces-ento-valor en el orden ordenado ordenado, base64, en comparación con X-Twilio-Signature with MessageDigest.isEqual. Verificado contra Documentación de seguridad de Twilio, luego sujetada al vector publicado de Twilio's propio twilio-java RequestValidatorTest (token 12345 - RSOYDt4T1cUTdK1PDd93/VVr8B8=), por lo que la prueba no puede pasar por un algoritmo equivocado. Modelado en MicrosoftTeamsProvider (secreto en blanco - . log . false; excepción - . false; constante-tiempo de comparación); NO en RingCentralProvider de retorno true; // TODO, y RingCentralSignatureUtil es igualadoIgnoreCase no se reutiliza. La URL firmada se reconstruye desde X-Forwarded-Proto/Host, no getRequestURL(). El borde termina TLS, por lo que getRequestURL() devuelve el propio sistema del contenedor y anfitrión, que no es lo que Twilio firmó - cada firma fracasaría y la El fracaso se vería exactamente como una falsificación. FLOWROUTE IS PARSE-ONLY Y STILL REFUSES TOY WEBHOOK. Flowroute publica no firma webhook: sus documentos de mensaje de entrada especifican la URL de devolución de llamada, el application/vnd.api-json tipo de contenido y la forma de carga útil, y sin firma cabecera, esquema HMAC o secreto compartido. No hay nada que verificar, así que se mantiene el default cerrado por fall en lugar de conseguir un esquema inventado - un inventado uno rechazaría todo tráfico genuino o sería escrito para volver a ser verdad, que es la superficie de falsificación que esta interfaz existe para prevenir. Flowroute tampoco post-codificado en forma, por lo que "consumes" acepta vnd.api-json también. Sinchón, Infobip y Los vonage no están implementados tanto en métodos como en registrar una advertencia que se nombran a sí mismos. Pruebas TDD ------------ Rojo (clasa ausente): [ERROR] ************* no puede encontrar símbolo símbolo: clase BulkTextInboundController ubicación: clase **************** Verde: Pruebas de ejecución: 27, Fallos: 0, Errores: 0, Saltado: 0 Mutación 1 -- EL UNO de los NOMBREes PLAN, y no prueba nada. Plan de la tarea 2 Paso 8 dice: hacer validateWebhookSignature predeterminado a "true" y a MisssingWebhookSecretLos rechazos deben enrojecerse. Se observaba: Las pruebas se ejecutan: 24, Fallos: 0, Errores: 0, Empapado: 0 [INFO] SUCCESS BUILD Nada se puso rojo. Cada prueba conduce Twilio, que OVERRIDES el predeterminado, por lo que el Fallo cerrado falle se ejerció sin ninguna prueba y podría haber sido en silencio invertida en cualquier momento: convertir cuatro transportistas de "rechazar todo" en "Acepta cualquier cosa" en un punto final donde aceptar cualquier cosa deja a un extraño Revocar el consentimiento de cualquier consumidor. Cerrado añadiendo **************** que pincha el valor predeterminado en una desnuda implementación y en los cuatro transportistas reales que confían en ella. Recorriendo lo mismo mutatinca en contra: **************** **************** [un transportista no implementado nunca debe aceptar un webhook no verificable] Esperar valor para ser falso pero era cierto **************** **************** [SinchTextProvider debe fallar] Esperar valor para ser falso pero era cierto Mutation 2 -- la que realmente se dirige a la prueba nombrada del plan: Twilio's guardia de plataToken cambió de "return falso" a "return" true. Se observaba: **************** **************** esperada: 403 pero era: 200 **************** **************** Esperar valor para ser falso pero era cierto Mutación 3 -- el parámetro ordenar revirtió (orden natural de TrueMap - . Comparator.reverseOrder ()), para mostrar que la prueba de algoritmo no es vacuo: **************** **************** Esperar que el valor sea verdad pero era falso **************** **************** previsto: 200 pero fue: 403 Las tres mutaciones volvieron. Suite completa después de reversión: Pruebas se ejecutan: 290, Fallos: 0, Errores: 0, Squiblado: 0 / SUCCESS BUILD Conocido huecos, deliberados y registrados en el tiempo de ejecución **************** * Se reconoce un mensaje en la entrada verificado y LOGGED PERO NO RECORDADO. El hand-off a SmsKeywordService es un TODO marcado porque esa clase llega a Tarea 3. Esta variable no suprime nada todavía. * Resolución de org escanea instancias activas y coincide con el número con Contactar a Canon.phone. No hay inventario de números, el único registro de propiedad es el único nulo de DESDE.PHONE-NUMBER en BulkTextProviderInstance, sin Buscador y sin índice. Sin coincidencia, o un partido en dos orgs, atribuye el mensaje a nadie y registros; adivinar que un inquilino registraría una revocación contra el equivocado, que es peor que no grabarlo. Needs ADD5/MS3. * InboundSms lleva ninguna marca de tiempo de portaaviones: Twilio está conectado SMS webhook no Envía uno. El "consentidoAtrad de la Task 3 viene del evento de la compañía, nunca ahora" es Por lo tanto, no satisfactorio para Twilio. Refs: ************* tarea 2

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios