Zum Hauptinhalt springen

Anmeldung

Einstiegsbildschirm der Gateway-Web-UI. Nach der Anmeldung sind alle /ui/* UI-Pfade zugänglich.

Initiales Passwort für Boxen ab 2026.05+

Bei der Erstinstallation mit install.sh wird für jede Box ein zufälliges Passwort automatisch generiert (kann vom Standard admin123! abweichen). Wenn SSH-Zugriff auf die Box möglich ist:

sudo cat /etc/kopens/credentials.txt # chmod 0600 root, 박스 안에서만

In dieser Datei werden die Passwörter für admin / mqtt / opcua / API-Key / Keystore an einem Ort ausgegeben. Beim Factory-Provisioning wird empfohlen, diese zu drucken/speichern und die Box anschließend zu versiegeln.


1. Bildschirmaufbau​

┌─────────────────────────────────────────────┐
│ ░░░ 다중 SVG 웨이브 (5겹) + 오로라 + 빛 점 │
│ │
│ 🌀 (회전 로고) │
│ 플랜트펄스 │
│ 엣지 │
│ [HOSTNAME 뱃지] │
│ │
│ 👤 [사용자 ID] │
│ 🔑 [패스워드] │
│ │
│ [🔓 로그인] │
│ │
│ KOPENS © │
│ │
│ ┌──────────────┐ │
│ │ IIoT 게이트 │ │
│ │ 웨이 일러스트 │ │
│ └──────────────┘ │
└─────────────────────────────────────────────┘

1.1 Hintergrund-Visualeffekte​

  • Dunkelblauer Farbverlauf — linear-gradient(135deg, #061830 0%, #0a2452 35%, #07182f 75%, #03101f 100%)
  • 5-lagige SVG-Wellen (.login_wave .wv1 bis .wv5) — fließen weich mit unterschiedlicher Amplitude/Phase
  • Aurora-conic-gradient (.login_aurora) — dreht sich langsam um die Bildschirmmitte
  • 6 Licht-Orbs (.orb) — radial-gradient, schweben an verschiedenen Positionen
  • IIoT-Gateway-Illustration unten rechts (.edge_pc_deco .edge_gw_svg) — clamp(200px, 22vw, 320px) mit drop-shadow + breathe-Animation. Dient der Visualisierung der Identität von PlantPulse Edge

Alle Effekte sind inline in <style> oder pp-login.css definiert — sie verschwinden beim Wechsel zu anderen Seiten (nur auf der Login-Seite angewendet).

1.2 Formularbereich​

BereichInhalt
Logo + NamePlantPulse Edge Logo (rotierend) + koreanische Bezeichnung
HOSTNAME-Badge${edge_context.hostname} — sofortige Identifikation, um welches Gateway es sich handelt
Benutzer-IDBuchstaben/Ziffern/@ — Platzhalter Benutzer-ID
PasswortKlartextübertragung — HTTPS empfohlen
Login-Buttonsubmit

2. Ablauf​

SchrittErgebnis
Formular submitPOST /login/login (user_id + password)
Antwort OKLade-Spinner für 3 Sekunden (fa-spinner-third fa-spin) anzeigen → Weiterleitung zu /ui/main
Antwort FehlerAlert-Box (shake-Animation, rote Hervorhebung) — "Bitte überprüfen Sie Ihre Anmeldedaten und geben Sie sie korrekt ein."

Sitzungsattribut _USER_LOGIN (JSONObject) speichert Benutzerinformationen — UserFilter / ApiAuthFilter prüfen mit diesem Attribut den Sitzungsdurchgang.

Wenn die 3-Sekunden-Ladezeit lang erscheint

Sie gibt der Plattform Zeit, sich auf Token-Validierung/Redirect-Races einzustellen. Wenn zu schnell zu /ui/main gewechselt wird, kann der erste Zugriff zu einer 401-Authentifizierungsweiterleitung führen und die Login-Seite erneut laden — dies ist eine bewusste Verzögerung für UX-Stabilität.


3. Eingabevalidierung​

FeldEinschränkung
Benutzer-ID4–20 Zeichen (Buchstaben / Ziffern / @ usw.)
Passwort4–20 Zeichen, Klartextübertragung (HTTPS empfohlen)

required="true" — HTML5-Validierung blockiert leere Werte. minlength/maxlength ebenfalls angewendet.


4. Häufige Stolperfallen​

SymptomUrsache / Lösung
Nach dem Login erneut Login-SeiteSitzungs-Cookie blockiert / gemischte Domäne (HTTPS ↔ HTTP). Zugriff über denselben Origin
Alle Passwörter werden abgelehntCassandra pe.app_user_login Tabelle ist leer. Systemadministrator um Registrierung initialer Benutzer bitten
Sitzung wird ständig beendetTomcat-Sitzungs-Timeout zu kurz — app.properties von security.session.timeout.minutes erhöhen. Oder PersistentManager + FileStore konfigurieren (bereits angewendet — Sitzung bleibt auch nach Neustart erhalten)
Gleichzeitige Anmeldung von anderem PCErlaubt (Mehrfach-Sitzungen) — RBAC / Single-Login-Zwang wird nicht unterstützt
IIoT-Illustration wird nicht angezeigtBrowser-Zoom zu klein oder Viewport sehr schmal (Minimum von clamp 200px größer als Viewport). Desktop wird empfohlen

5. Sicherheitshinweise​

  • HTTPS empfohlen — Bei Exposition im externen Netz HTTPS erzwingen (Tomcat-Connector oder vorgeschalteter nginx/Apache-Reverse-Proxy)
  • REST /api/v1/* erfordert Authentifizierung — ApiAuthFilter gilt als erfüllt, wenn eine der folgenden Authentifizierungsmethoden zutrifft:
    • X-API-Key-Header (Wert durch EDGE_REST_API_KEY_FILE oder EDGE_REST_API_KEY injiziert)
    • Authorization: Bearer <key>-Header
    • Oder Login-Sitzung (bereits im Browser angemeldet) — _USER_LOGIN-Attribut vorhanden, dann Sitzungsdurchgang
  • ?api_key=<key>-Query-Parameter werden abgelehnt mit 401, da der Schlüssel in URL-Verläufen/Proxy-Caches verbleiben kann
  • Schlüssel werden in app.properties von edge.rest.api.key konfiguriert + nur erzwungen, wenn edge.rest.api.auth=true. Details unter REST-API-Leitfaden
  • Audit-Log für API-Aufrufe — Jeder /api/*-Aufruf wird von ApiAccessLogFilter als einzeiliges Log protokolliert (Methode/Pfad/Status/Dauer/IP/Benutzer/Auth-Modus/UA). IP basiert auf Standard RemoteAddr; apikey-Klartext wird auf die ersten 4 Zeichen + Länge maskiert
  • Passwort ändern — Zahnrad oben rechts → Umgebungseinstellungen → edge.admin_password → Speichern → Neustart (Details)

Weiterführende Informationen​