docs: verify and complete Gateway CircuitBreaker updates in system hardening roadmap

Marked Gateway CircuitBreaker tasks as completed and verified in archived roadmaps and session logs. Confirmed fixes for `ClassNotFoundException` via Spring Cloud 2025.0.1 and proper configuration of Resilience4j with fallback and metrics integration.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
Stefan Mogeritsch 2026-03-09 12:02:53 +01:00
parent 15e253365a
commit 69c1123586
3 changed files with 37 additions and 2 deletions

View File

@ -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)_ 2026-03-09: micrometer = "1.16.1" bereits in libs.versions.toml gesetzt)_
### 1.2 Infrastruktur & Docker (DevOps) ### 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. - [ ] **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 - [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)_ `ping-service`. _(verifiziert 2026-03-09: frontend-client + PKCE + CORS-Härtung + Password-Policy umgesetzt)_

View File

@ -20,6 +20,12 @@ last_update: 2026-03-09
- `platform/build.gradle.kts`: BOM Import prüfen. - `platform/build.gradle.kts`: BOM Import prüfen.
- Ziel: Behebung der `ClassNotFoundException` im Gateway (CircuitBreaker). - Ziel: Behebung der `ClassNotFoundException` im Gateway (CircuitBreaker).
- _(verifiziert 2026-03-09)_ - _(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:** - [x] **Micrometer 1.16.1:**
- Explizites Upgrade in `libs.versions.toml` für Java 25 Kompatibilität. - 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")_ - _(verifiziert 2026-03-09: micrometer = "1.16.1" bereits gesetzt, micrometerTracing = "1.6.1")_

View File

@ -111,7 +111,33 @@ Login-Flow mit PKCE Authorization Code Flow (S256) für `frontend-client` implem
aktueller Tab). aktueller Tab).
- **State-Validierung**: CSRF-Schutz via State-Parameter-Vergleich im ViewModel. - **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 ## 🔜 Nächste Schritte
- **TLS/HTTPS** — Langfristig: `KC_HOSTNAME_STRICT_HTTPS=true` setzen, sobald TLS eingerichtet ist. - **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`).