### fix: verbessere CORS-Handling im Caddy-Proxy
All checks were successful
All checks were successful
- **Caddyfile:** Hinzufügen des `defer`-Flags zur korrekten Verarbeitung von CORS-Headern. - **UI:** Aktualisierung des Versionsmarkers auf `v2026-04-23.22 - CADDY DEFER CORS FIX`. - **Docs:** Ergänzung der Analyse und Lösung für Version 22.
This commit is contained in:
parent
71aea3f41d
commit
03fa74abba
|
|
@ -17,27 +17,20 @@
|
||||||
|
|
||||||
encode gzip zstd
|
encode gzip zstd
|
||||||
|
|
||||||
# Reverse Proxy: Plan-B leitet nur /api/mail an den Mail-Service weiter (kein API-Gateway nötig)
|
# Reverse Proxy: Plan-B leitet nur /api/mail an den Mail-Service weiter
|
||||||
handle /api/mail/* {
|
handle /api/mail/* {
|
||||||
# CORS Handshake direkt im Proxy abfangen (Plan-B radikal)
|
|
||||||
@options method OPTIONS
|
|
||||||
header @options {
|
|
||||||
Access-Control-Allow-Origin "https://app.mo-code.at"
|
|
||||||
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
|
||||||
Access-Control-Allow-Headers "*"
|
|
||||||
Access-Control-Allow-Credentials "true"
|
|
||||||
Access-Control-Max-Age "3600"
|
|
||||||
}
|
|
||||||
respond @options 204
|
|
||||||
|
|
||||||
# CORS Header auch für die eigentlichen Antworten (GET/POST) setzen
|
|
||||||
header {
|
header {
|
||||||
Access-Control-Allow-Origin "https://app.mo-code.at"
|
Access-Control-Allow-Origin "https://app.mo-code.at"
|
||||||
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||||||
Access-Control-Allow-Headers "*"
|
Access-Control-Allow-Headers "*"
|
||||||
Access-Control-Allow-Credentials "true"
|
Access-Control-Allow-Credentials "true"
|
||||||
|
Access-Control-Max-Age "3600"
|
||||||
|
defer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@options method OPTIONS
|
||||||
|
respond @options 204
|
||||||
|
|
||||||
reverse_proxy mail-service:8085
|
reverse_proxy mail-service:8085
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,3 +79,10 @@ Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare erse
|
||||||
- OPTIONS-Requests werden nun sofort vom Proxy mit `204 No Content` und den korrekten CORS-Headern beantwortet.
|
- OPTIONS-Requests werden nun sofort vom Proxy mit `204 No Content` und den korrekten CORS-Headern beantwortet.
|
||||||
- Damit wird sichergestellt, dass der Browser die Header erhält, noch bevor die Anfrage das Backend erreicht.
|
- Damit wird sichergestellt, dass der Browser die Header erhält, noch bevor die Anfrage das Backend erreicht.
|
||||||
- **Status**: Versionsmarker auf v2026-04-23.21 aktualisiert.
|
- **Status**: Versionsmarker auf v2026-04-23.21 aktualisiert.
|
||||||
|
|
||||||
|
### v2026-04-23.22 - CADDY DEFER CORS FIX
|
||||||
|
- **Analyse**: Die CORS-Blockade hielt an (v21). Die Fehlermeldung "No 'Access-Control-Allow-Origin' header" blieb bestehen.
|
||||||
|
- **Lösung**:
|
||||||
|
- Im `Caddyfile` wurde das `defer`-Flag für die Header-Direktive hinzugefügt. Dies stellt sicher, dass Caddy die CORS-Header erst ganz am Ende der Response-Verarbeitung setzt und sie nicht von anderen Direktiven (wie `reverse_proxy`) überschrieben werden können.
|
||||||
|
- Radikale Vereinfachung des CORS-Blocks im Caddyfile für maximale Zuverlässigkeit bei Preflight-Anfragen.
|
||||||
|
- **Status**: Versionsmarker auf v2026-04-23.22 aktualisiert.
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ fun MainAppContent() {
|
||||||
// Dezentraler Versions-Marker in der unteren rechten Ecke
|
// Dezentraler Versions-Marker in der unteren rechten Ecke
|
||||||
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
|
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
|
||||||
Text(
|
Text(
|
||||||
text = "v2026-04-23.21 - CADDY CORS PROXY FIX",
|
text = "v2026-04-23.22 - CADDY DEFER CORS FIX",
|
||||||
style = MaterialTheme.typography.labelSmall,
|
style = MaterialTheme.typography.labelSmall,
|
||||||
color = Color.LightGray.copy(alpha = 0.5f)
|
color = Color.LightGray.copy(alpha = 0.5f)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user