Anmeldung
Einstiegsbildschirm der Gateway-Web-UI. Nach der Anmeldung sind alle /ui/* UI-Pfade zugänglich.
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 .wv1bis.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>oderpp-login.cssdefiniert — sie verschwinden beim Wechsel zu anderen Seiten (nur auf der Login-Seite angewendet).
1.2 Formularbereich
| Bereich | Inhalt |
|---|---|
| Logo + Name | PlantPulse Edge Logo (rotierend) + koreanische Bezeichnung |
| HOSTNAME-Badge | ${edge_context.hostname} — sofortige Identifikation, um welches Gateway es sich handelt |
| Benutzer-ID | Buchstaben/Ziffern/@ — Platzhalter Benutzer-ID |
| Passwort | Klartextübertragung — HTTPS empfohlen |
| Login-Button | submit |
2. Ablauf
| Schritt | Ergebnis |
|---|---|
| Formular submit | POST /login/login (user_id + password) |
| Antwort OK | Lade-Spinner für 3 Sekunden (fa-spinner-third fa-spin) anzeigen → Weiterleitung zu /ui/main |
| Antwort Fehler | Alert-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.
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
| Feld | Einschränkung |
|---|---|
| Benutzer-ID | 4–20 Zeichen (Buchstaben / Ziffern / @ usw.) |
| Passwort | 4–20 Zeichen, Klartextübertragung (HTTPS empfohlen) |
required="true" — HTML5-Validierung blockiert leere Werte. minlength/maxlength ebenfalls angewendet.
4. Häufige Stolperfallen
| Symptom | Ursache / Lösung |
|---|---|
| Nach dem Login erneut Login-Seite | Sitzungs-Cookie blockiert / gemischte Domäne (HTTPS ↔ HTTP). Zugriff über denselben Origin |
| Alle Passwörter werden abgelehnt | Cassandra pe.app_user_login Tabelle ist leer. Systemadministrator um Registrierung initialer Benutzer bitten |
| Sitzung wird ständig beendet | Tomcat-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 PC | Erlaubt (Mehrfach-Sitzungen) — RBAC / Single-Login-Zwang wird nicht unterstützt |
| IIoT-Illustration wird nicht angezeigt | Browser-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 —ApiAuthFiltergilt als erfüllt, wenn eine der folgenden Authentifizierungsmethoden zutrifft:X-API-Key-Header (Wert durchEDGE_REST_API_KEY_FILEoderEDGE_REST_API_KEYinjiziert)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.propertiesvonedge.rest.api.keykonfiguriert + nur erzwungen, wennedge.rest.api.auth=true. Details unter REST-API-Leitfaden - Audit-Log für API-Aufrufe — Jeder
/api/*-Aufruf wird vonApiAccessLogFilterals einzeiliges Log protokolliert (Methode/Pfad/Status/Dauer/IP/Benutzer/Auth-Modus/UA). IP basiert auf StandardRemoteAddr; 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
- Erste Seite nach dem Login: Startseite
- Passwort- und API-Key-Änderung: Passwort · API-Key ändern
- REST-API-Authentifizierung im Detail: REST-API-Leitfaden