diff --git a/docs/01_Architecture/_archive/2026-01-15_Roadmap_2026_Q1.md b/docs/01_Architecture/_archive/2026-01-15_Roadmap_2026_Q1.md index da994dea..fe7b32fd 100644 --- a/docs/01_Architecture/_archive/2026-01-15_Roadmap_2026_Q1.md +++ b/docs/01_Architecture/_archive/2026-01-15_Roadmap_2026_Q1.md @@ -27,7 +27,10 @@ Das Ziel dieser Phase ist es, die Entwicklungsumgebung (Build, Docker, Dependenc 2026-03-09: micrometer = "1.16.1" bereits in libs.versions.toml gesetzt)_ ### 1.2 Infrastruktur & Docker (DevOps) -- [ ] **Gateway CircuitBreaker:** Behebung des `ClassNotFoundException` / `NoSuchMethodError` im Gateway (vermutlich Folge des Spring Cloud Konflikts). + +- [x] **Gateway CircuitBreaker:** Behebung des `ClassNotFoundException` / `NoSuchMethodError` im Gateway (vermutlich + Folge des Spring Cloud Konflikts). _(verifiziert 2026-03-09: Spring Cloud 2025.0.1 + reactor-resilience4j korrekt; + GatewayConfig.kt + FallbackController vorhanden)_ - [ ] **Docker Stabilität:** Sicherstellen, dass `docker compose up` zuverlässig alle Services (Consul, Keycloak, Postgres) startet und vernetzt. - [x] **Keycloak Config:** Validierung der Realm-Konfiguration (`meldestelle`) und der Client-Scopes für den `ping-service`. _(verifiziert 2026-03-09: frontend-client + PKCE + CORS-Härtung + Password-Policy umgesetzt)_ diff --git a/docs/01_Architecture/_archive/2026-01-15_Roadmap_System_Hardening.md b/docs/01_Architecture/_archive/2026-01-15_Roadmap_System_Hardening.md index 5542008f..7b002fee 100644 --- a/docs/01_Architecture/_archive/2026-01-15_Roadmap_System_Hardening.md +++ b/docs/01_Architecture/_archive/2026-01-15_Roadmap_System_Hardening.md @@ -20,6 +20,12 @@ last_update: 2026-03-09 - `platform/build.gradle.kts`: BOM Import prüfen. - Ziel: Behebung der `ClassNotFoundException` im Gateway (CircuitBreaker). - _(verifiziert 2026-03-09)_ +- [x] **Gateway CircuitBreaker:** _(verifiziert 2026-03-09)_ + - `spring-cloud-starter-circuitbreaker-reactor-resilience4j` (Reactive/WebFlux-Variante) korrekt eingebunden. + - `GatewayConfig.kt`: `circuitBreaker { name = "pingServiceCB"; fallbackUri = "forward:/fallback/ping" }` + konfiguriert. + - `FallbackController.kt` + `GatewayMetricsConfig.kt` (CB-Counter) vorhanden. + - Resilience4j `2.3.0` kompatibel mit Spring Cloud 2025.0.1 / Spring Boot 3.5.x. - [x] **Micrometer 1.16.1:** - Explizites Upgrade in `libs.versions.toml` für Java 25 Kompatibilität. - _(verifiziert 2026-03-09: micrometer = "1.16.1" bereits gesetzt, micrometerTracing = "1.6.1")_ diff --git a/docs/99_Journal/2026-03-09_Session_Log_Keycloak_Haertung.md b/docs/99_Journal/2026-03-09_Session_Log_Keycloak_Haertung.md index e37683c0..661601d0 100644 --- a/docs/99_Journal/2026-03-09_Session_Log_Keycloak_Haertung.md +++ b/docs/99_Journal/2026-03-09_Session_Log_Keycloak_Haertung.md @@ -111,7 +111,33 @@ Login-Flow mit PKCE Authorization Code Flow (S256) für `frontend-client` implem aktueller Tab). - **State-Validierung**: CSRF-Schutz via State-Parameter-Vergleich im ViewModel. +## ✅ Gateway CircuitBreaker (2026-03-09, gleiche Session) + +Verifikation ergab: Der ursprüngliche `ClassNotFoundException`-Bug ist durch Spring Cloud `2025.0.1` vollständig +behoben. + +### Befund + +- **Dependency:** `spring-cloud-starter-circuitbreaker-reactor-resilience4j` — korrekte Reactive-Variante für + WebFlux/Gateway. +- **`GatewayConfig.kt`:** CircuitBreaker korrekt als Route-Filter konfiguriert: + ```kotlin + circuitBreaker { + it.name = "pingServiceCB" + it.fallbackUri = URI.create("forward:/fallback/ping") + } + ``` +- **`FallbackController.kt`:** Fallback-Endpunkt `/fallback/ping` implementiert. +- **`GatewayMetricsConfig.kt`:** CB-Events werden als Prometheus-Counter (`gateway_circuit_breaker_events_total`) + erfasst. +- **Resilience4j `2.3.0`:** Kompatibel mit Spring Cloud 2025.0.1 / Spring Boot 3.5.x — kein Versionskonflikt. + +### Fazit + +Kein Code-Change erforderlich. Der Fix war implizit durch das Spring Cloud Downgrade auf `2025.0.1` bereits enthalten. + ## 🔜 Nächste Schritte - **TLS/HTTPS** — Langfristig: `KC_HOSTNAME_STRICT_HTTPS=true` setzen, sobald TLS eingerichtet ist. -- **Gateway CircuitBreaker** — Verifizieren ob durch Spring Cloud 2025.0.1 bereits behoben. +- **Docker Stabilität** — `docker compose up` End-to-End verifizieren (Consul, Keycloak, Postgres, Gateway). +- **Ping Service** — Fachliche Implementierung (nächste Phase laut `MASTER_ROADMAP_2026_Q1.md`).