diff --git a/docs/99_Journal/2026-01-23_Session_Log_Auth_Fixes.md b/docs/99_Journal/2026-01-23_Session_Log_Auth_Fixes.md new file mode 100644 index 00000000..2d2a6d75 --- /dev/null +++ b/docs/99_Journal/2026-01-23_Session_Log_Auth_Fixes.md @@ -0,0 +1,39 @@ +--- +type: Journal +status: COMPLETED +owner: Curator +date: 2026-01-23 +participants: + - DevOps Engineer + - Frontend Expert + - Curator +--- + +# 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-gateway` und `ping-service` schlug fehl, weil Gradle das Modul `:frontend:core:auth` konfigurieren wollte, dessen Pfad im Docker-Container fehlte. +* **Lösung:** Die `Dockerfile`s beider Services wurden aktualisiert, um die neue Frontend-Struktur (`frontend/core/auth` statt `frontend/features/auth-feature`) widerzuspiegeln. + +### 2. Frontend Auth Stabilisierung (Frontend Expert) +* **Problem 1 (Login 401):** Der `AuthApiClient` nutzte den globalen `apiClient`, der für das Gateway konfiguriert war (`DefaultRequest` mit Base URL). Dies führte zu Konflikten bei Requests gegen Keycloak. + * **Lösung:** Einführung eines `baseHttpClient` (named) im `NetworkModule`, der "nackt" ist. Der `AuthApiClient` nutzt nun diesen Client. +* **Problem 2 (Logout ineffektiv):** Das Ktor `Auth` Plugin cachete den Token intern, sodass ein Logout (`AuthTokenManager.clearToken()`) erst beim Neustart wirksam wurde. + * **Lösung:** Entfernung des `Auth` Plugins aus dem `apiClient`. Stattdessen wird der `Authorization` Header nun via `install(DefaultRequest)` dynamisch bei jedem Request aus dem `TokenProvider` gelesen. + +### 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.json` wurde `temporary: false` gesetzt. + +## 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**