Files
tactical-docs/install-notes/021-auth-grundlage-admin-login.md
2026-06-14 07:53:30 +00:00

2.3 KiB

021 - Auth-Grundlage und Admin-Login

Ziel

Der Server wurde um eine erste Auth-Grundlage erweitert.

Implementiert wurde ein Login-Endpunkt für den vorhandenen Bootstrap-Admin.

Neuer Endpunkt

POST /api/v1/auth/login

Request:

{ "username": "admin", "password": "" }

Response bei Erfolg:

{ "status": "ok", "tokenType": "Bearer", "accessToken": "...", "refreshToken": "...", "expiresInSeconds": 3600, "user": { "id": "...", "username": "admin", "displayName": "RUVNOX Admin", "role": "admin" } }

Neue Dateien

Security:

  • src/main/kotlin/de/ruvnox/tactical/security/PasswordHash.kt
  • src/main/kotlin/de/ruvnox/tactical/security/TokenSupport.kt

API:

  • src/main/kotlin/de/ruvnox/tactical/api/AuthDtos.kt
  • src/main/kotlin/de/ruvnox/tactical/api/AuthRoutes.kt

Repository:

  • src/main/kotlin/de/ruvnox/tactical/repository/SessionRepository.kt

Geändert:

  • UserRepository.kt
  • Main.kt

Passwortprüfung

Der Server kann jetzt PBKDF2-SHA256-Hashes im Format des Bootstrap-Scripts prüfen:

pbkdf2_sha256$iterations$salt_base64$hash_base64

Die Prüfung nutzt PBKDF2WithHmacSHA256 und konstantzeitnahen Vergleich über MessageDigest.isEqual.

Token

Beim Login werden erzeugt:

  • accessToken
  • refreshToken

Der refreshToken wird nicht im Klartext gespeichert.

In auth_sessions wird gespeichert:

  • refresh_token_hash = SHA-256(refreshToken)
  • user_id
  • expires_at
  • created_at
  • last_seen_at

Datenbank

Genutzte Tabelle:

auth_sessions

Nach erfolgreichem Login existiert mindestens eine aktive Session.

Sicherheitshinweise

Dies ist eine erste Auth-Grundlage.

Noch nicht final umgesetzt:

  • geschützte Endpunkte
  • Bearer-Token-Prüfung
  • Refresh-Flow
  • Logout
  • Rollenprüfung auf Routen
  • Rate-Limiting
  • Brute-Force-Schutz
  • Session-Cleanup

Verifikation

Login wurde öffentlich geprüft:

POST https://tactical.ruvnox.de/api/v1/auth/login

Tokens wurden in der Ausgabe maskiert.

Git-Commit

tactical-server:

Add admin login endpoint

Abschlussstand

  • Passwort-Hash-Verifikation implementiert
  • Login-DTOs implementiert
  • Login-Route implementiert
  • Session-Erzeugung implementiert
  • Build erfolgreich
  • Deployment erfolgreich
  • Login erfolgreich geprüft
  • Server-Repo gepusht
  • Docs-Repo aktualisiert