Added a session log detailing Docker build path updates, frontend auth flow stabilization (replacing `Auth` plugin with dynamic auth header injection), and Keycloak realm configuration adjustments. Document outlines issues, solutions, and results for improved traceability and system stability.
2.0 KiB
2.0 KiB
| type | status | owner | date | participants | |||
|---|---|---|---|---|---|---|---|
| Journal | COMPLETED | Curator | 2026-01-23 |
|
Session Log: Auth & Build Fixes
Datum: 23. Jänner 2026 Ziel: Behebung von Build-Fehlern im Docker-Stack und Stabilisierung des Auth-Flows (Login/Logout) im Frontend.
Durchgeführte Arbeiten
1. Docker Build Fix (DevOps)
- Problem: Der Build von
api-gatewayundping-serviceschlug fehl, weil Gradle das Modul:frontend:core:authkonfigurieren wollte, dessen Pfad im Docker-Container fehlte. - Lösung: Die
Dockerfiles beider Services wurden aktualisiert, um die neue Frontend-Struktur (frontend/core/authstattfrontend/features/auth-feature) widerzuspiegeln.
2. Frontend Auth Stabilisierung (Frontend Expert)
- Problem 1 (Login 401): Der
AuthApiClientnutzte den globalenapiClient, der für das Gateway konfiguriert war (DefaultRequestmit Base URL). Dies führte zu Konflikten bei Requests gegen Keycloak.- Lösung: Einführung eines
baseHttpClient(named) imNetworkModule, der "nackt" ist. DerAuthApiClientnutzt nun diesen Client.
- Lösung: Einführung eines
- Problem 2 (Logout ineffektiv): Das Ktor
AuthPlugin cachete den Token intern, sodass ein Logout (AuthTokenManager.clearToken()) erst beim Neustart wirksam wurde.- Lösung: Entfernung des
AuthPlugins aus demapiClient. Stattdessen wird derAuthorizationHeader nun viainstall(DefaultRequest)dynamisch bei jedem Request aus demTokenProvidergelesen.
- Lösung: Entfernung des
3. Keycloak Konfiguration
- Problem: Der Admin-User musste beim ersten Login das Passwort ändern (
temporary: true), was den API-Login blockierte. - Lösung: In
meldestelle-realm.jsonwurdetemporary: falsegesetzt.
Ergebnisse
- Der Docker-Build läuft fehlerfrei durch.
- Login funktioniert stabil.
- Logout funktioniert sofort (nachfolgende Requests liefern korrekt 401).
- Die Architektur im Frontend ist durch die Trennung der HttpClients sauberer.
Status: 🟢 System Fully Operational