Niemals Kunden-gelieferte Identitäts-Header vorwärts stromaufwärts
forward(), forwardWebhook() und forwardCallback() kopiert jedes Inbound Header außer Host (und, für die Sessionless zwei, die Anmelde-Kopfzeilen) auf die vorges...
Forward Carrier SMS webhooks, die nichts erreichte
Traefik sendet jeden Weg auf api.kamocrm.com zu diesem Gateway ohne Pfad geteilt, und diese Klasse weitergeleitet /api/voip/** und nichts anderes. Also /api/bul...
Forward Carrier SMS webhooks, die nichts erreichte
Traefik sendet jeden Weg auf api.kamocrm.com zu diesem Gateway ohne Pfad geteilt, und diese Klasse weitergeleitet /api/voip/** und nichts anderes. Also /api/bul...
Beweisen Sie den Einsatz durch Digest, nicht durch Tag
Die vorhergehende Commit-Demitenung stoppt "Set-Image" als stilles No-Op. Dies behauptet, die Ergebnis: Nach dem Rollout wird der Tag auf eine Verdauung bei der...
Ein Umbau der gleichen Verpflichtung eingesetzt nichts und berichtete Erfolg
Das Bild ist mit dem Commit SHA markiert, so dass der Wiederaufbau der gleichen Commit produziert eine identische Bildreferenz. "kubectl Set Bild" dann ändert n...
Lassen Sie die /api/Settings vorwärts, die auf nichts zeigt
EmailService dient dem Sync-Integrations-Controller unter ************ nicht /api/settings/integrations . vorwärts erreichte einen Weg, den der Dienst nicht abb...
Route /api/Kontakte, /api/calendar und /api/Settings zu EmailService
KamoMobile Kontakte und Kalender-Bildschirme 404'd auf jede Anfrage. Neither Pfad wurde am api Host geroutet, so dass nichts erreichte EmailService und die Serv...
Geben Sie den Rollout-Raum für die 15er minReadySeconds jetzt Kosten
progressDeadlineSeconds war 60. Das ist das Fenster, in dem ein Rollout Fortschritte zeigen muss, bevor Kubernetes gibt auf und markiert es gescheitert, und die...
APIService schaltet sich nie anmutig ab
Einsatz ersetzt die einzige Hülse jedes Dienstes mit nichts, um die Anfragen in fangen Flug. Drei Einstellungen, die auf der gesamten Flotte angewendet werden: ...
Encode des dekodierten Tokens genau einmal auf dem Weg vorgeschaltet
21670e5 routed SocialWebhookController durch UpstreamUris FULLY-PRE-ENCODED-Eintrag Punkt, aber seine URL ist ein Hybrid: "Token" ist ein @PathVariable, so Spri...
Veranern Sie die Abfrage des Anrufers auf den öffentlich zugänglichen Proxies
Das Gateway stoppte die doppelte Codierung weitergeleiteter Abfragestrings in 3c24d32, aber vier andere Proxies in diesem Service noch konatierten bereits-Proze...
Veranschlagen Sie die Abfrage-Anteigns, anstatt sie zweimal zu kodieren
Jede URL, die dieses Gateway erstellt, wird von getRequestURI() zusammengesetzt und getQueryString() - beide bereits prozentig kodiert und wurde dann an RestTem...
Harden Sie die kubectl Download gegen schuppige Egress [skip ci]
dl.k8s.io über den Ausschritt des Läufers fällt zeitweise mitten im Transfer: Curl: (56) OpenSSL SSL_read: Entschlüsselung fehlgeschlagen oder schlechtem Reko...
Vereiger-Herkunft auf Phase 1 - OriginMatcher Opt-in (leere erlauben-list / fehlende Herkunft erlaubt)
Phase-0 Widgets rufen immer noch über ihre Server-Seite Proxy, so Origin-Locking hat keine Nutzen noch und jeder Live-Pell-Chat-Schlüssel hat eine leere erlaubt...
Keine Cache-Invalid-Schlüssel auf transienten nachgeschalteten Fehlern (nur auf definitive ungültig)
Nur cache-invalidieren Sie wirklich-ungültige Tasten, nicht origin-verneiniert (verhindert gültige Tasten DoS)
Auf einem kalten Redis-Cache war ein gültiger Public-Chat-Schlüssel mit einem falschen/abwesenden Ursprung ca. INVALID für 60er Jahre, die Ablehnung der richtig...
Bind WS Relais Handshake zu Origin + hinzufügen Cold-Cache-Schlüssel Validierung Fallback
Extrahiert PublicChatControllers privater validateViaDownstream() in einen Shared PublicChatKeyResolver-Beine so PublicChatWebSocketHandler kann die gleiche wie...
Machen Sie Public-Cha-Ursprung erlauben-list (verleugn auf fehlender Herkunft / leere Liste)
Carve /api/voip/recordings/** aus dem Wildcard VOIP Forwarder
Der /api/voip/** catch-all in APIGatewayController beschattete die dediziert VoipRecordingUploadController POST /api/voip/recordings/upload Mapping, wenn Spring...
Größe der Datei auf 500MB erhöhen
Spring Boot standardmäßige Cap mehrteilige Teile bei 1MB, was zu Hintergrundbild führt Uploads zum Scheitern mit 500 in request.getParts(). Match SecurityServic...
CORS zu Traefik über Kamo-Middlewares bewegen, In-App entfernen
Die CorsFilter @Bean in der Frühjahrs-App war still nicht Anwendung Header nach WebConfig.java wurde entfernt. CORS wird nun vollständig an der Traefik-Schicht ...
Entfernen Sie doppelte CorsFilter und Streifen upstream CORS-Header im Gateway
WebConfig.java definierte eine zweite CorsFilter-Beine, die mit CorsConfig.javas konkurrierte Bohnen, riskieren doppelte Header schreibt. Gelöscht es, so dass n...
Set-Anwendung/Json für JSON-Leichen an SecurityService weitergeleitet
RestTemplate to upstream könnte Content-Type mit Spring inkompatibel machen @RequestBody, verursacht 415. Nach dem Lesen des Rohkörpers, Kraft APPLICATION_JSON ...
Valididate Forgejo HMAC-SHA256 Signatur statt schlichter geheimer Kopfzeile
Forgejo sendet Webhook-Geheim Geheimnis als X-Gitea-Signature / X-Forgejo-Signature HMAC-SHA256 Hasch, nicht als einfacher Headerwert. Lesekörper, überprüfen HM...
SUBSCRIPTION_CATALOG in Standard-Sweiger-Sturzes-Sturzes-Sturzes-Sturzes-Stur
Wenn MediaService in der Validierungsantwort keine Reichweiten zurückgibt, standardmäßig auch die beiden Zielfernrohre von PUBLIC_CHAT und SUBSCRIPTION_CATALOG....
Verwenden Sie HTTP-Port 80 für meet Service URL passend zu neuer MediaService config
Verwenden Sie getServerName() statt getHeader(Host) für die ursprüngliche Host-Auflösung
ForwardedHeaderFilter verbraucht X-Forwarded-Host und adaptiert getServerName() entsprechend, während getHeader(Host) den rohen HTTP-Host zurückgibt, der eine i...
Verwenden Sie HTTP auf Port 80 für meet Service URL, um andere Dienste zu entsprechen
Der HTTPS-Endpunkt auf 8443 verursacht SSL-Zert-Mit-Mitmatch beim Routing über K8s interne DNS. Alle anderen Dienste verwenden HTTP auf Port 80.
Verwenden Sie die korrekte MediaService URL (https port 8443) für meet.service.url
Hinzufügen von meet.service.url zu K8s configmap, um APIService Absturz zu verhindern
Erhalten Sie upstream X-Forwarded-Host statt mit eigenem Host zu überschreiben
Wenn ein upstream Proxy (Next.js) X-Forwarded-Host auf den Browser setzt Original-Host, APIService bewahrt es jetzt statt Überschreiben mit seiner eigene Host-H...
Explizit weitergeleitet Besucher-IP an nachgelagerte Dienste
ForwardedHeaderFilter verbraucht X-Forwarded-For von der eingehenden Anfrage, also, wenn APIService via Rest an SecurityService weitergibt, den Header fehlt. Je...
Verschieben AccessEnforcementFilter gescannt Paket, revert ComponentScan
Der erweiterte @ComponentScan verursachte einen corsFilter Bohnen-Konflikt zwischen CorsConfig und WebConfig. Verschieben Sie den Filter in com.kamo.api.app.con...
Redis-Verbindung config zu K8s configmap hinzufügen
APIService pod war nicht zu starten, weil Spring-Boot-Starter-Daten-redis Die automatische Konfiguration konnte sich bei localhost:6379 nicht mit Redis verbinde...
Verwenden Sie JdkClientHttpRequestFactory, um PATCH-Methoden-Forwarding zu unterstützen
Die Standardeinstellung RestTemplate verwendet SimpleClientHttpRequestFactory (HttpURLConnection) die die PATCH-HTTP-Methode nicht unterstützt, wodurch branchen...
Buildx-Setup mit unsicherer Registry-Konfiguration hinzufügen, um 401 auth-Fehler zu beheben
Routen-Mapping für /api/notes/** hinzufügen, um SecurityService weiterzuleiten
Ermöglichen Sie die sofortige Kündigung von steckenden Hülsen (maxUnverfügbar: 1)
Force-Termin stecken Pods schneller und fügen anmutige Herunterfahren Konfiguration
Fügen Sie PreStop-Haken, Sonden und erhöhen Kündigungsfrist, um Bereitstellung Timeouts zu verhindern
Richtig vorwärts Multipart/Form-Daten durch den Umbau von Teilen für RestTemplate
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.