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:
parent
15e253365a
commit
69c1123586
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -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")_
|
||||||
|
|
|
||||||
|
|
@ -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`).
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user