meldestelle/docs/99_Journal/2026-01-23_Session_Log_Auth_Fixes.md
Stefan Mogeritsch f774d686a4 docs(journal): document fixes for Docker, frontend auth flow, and Keycloak config
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.
2026-01-23 15:44:28 +01:00

2.0 KiB

type status owner date participants
Journal COMPLETED Curator 2026-01-23
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 Dockerfiles 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