Anmelden (/login/form)
Gateway-Weboberfläche Anmeldebildschirm. Nach der Anmeldung können alle /ui/* UI-Pfade aufgerufen werden.
Bei der ersten Installation mit install.sh wird für jede Box automatisch ein zufälliges Passwort generiert (es kann sich vom Standard admin123! unterscheiden).
Falls SSH-Zugriff auf die Box möglich ist:
sudo cat /etc/kopens/credentials.txt # chmod 0600 root, 박스 안에서만
In dieser Datei sind die Admin-, MQTT-, OPC-UA- und API-Schlüssel sowie das Keystore-Passwort zentral hinterlegt. Während der Factory Provisioning sollte diese Ausgabe ausgedruckt/gespeichert und die Box dann versiegelt werden.
1. Bildschirmaufbau
┌─────────────────────────────────────────────┐
│ ░░░ 다중 SVG 웨이브 (5겹) + 오로라 + 빛 점 │
│ │
│ 🌀 (회전 로고) │
│ 플랜트펄스 │
│ 엣지 │
│ [HOSTNAME 뱃지] │
│ │
│ 👤 [사용자 ID] │
│ 🔑 [패스워드] │
│ │
│ [🔓 로그인] │
│ │
│ KOPENS © │
│ │
│ ┌──────────────┐ │
│ │ IIoT 게이트 │ │
│ │ 웨이 일러스트 │ │
│ └──────────────┘ │
└─────────────────────────────────────────────┘
1.1 Hintergrund-Visualeffekte
- Dunkler Navy-Farbverlauf —
linear-gradient(135deg, #061830 0%, #0a2452 35%, #07182f 75%, #03101f 100%) - 5 überlagerte SVG-Wellen (
.login_wave .wv1~.wv5) — mit unterschiedlicher Amplitude/Phase für sanfte Bewegung - Aurora-Conic-Gradient (
.login_aurora) — langsame Rotation von der Bildschirmmitte - 6 Licht-Orbs (
.orb) — Radialverlauf, schwebendes Bewegungsmuster an verschiedenen Positionen - IIoT-Gateway-Illustration rechts unten (
.edge_pc_deco .edge_gw_svg) — clamp(200px, 22vw, 320px) drop-shadow + breathe-Animation. Visualisiert die Identität von PlantPulse Edge
Alle Effekte sind inline in
<style>oderpp-login.cssdefiniert – sie verschwinden beim Navigieren zu anderen Seiten (gelten nur für die Anmeldeseite).
1.2 Formularbereich
| Bereich | Inhalt |
|---|---|
| Logo + Name | PlantPulse Edge Logo (rotierend) + Produktname |
| HOSTNAME-Badge | ${edge_context.hostname} – zum sofortigen Erkennen des jeweiligen Gateways |
| Benutzer-ID | Alphanumerisch/@ – Platzhalter Benutzer-ID |
| Passwort | Klartext-Übertragung – HTTPS empfohlen |
| Anmelde-Button | Absenden |
2. Ablauf
| Schritt | Ergebnis |
|---|---|
| Formular absenden | POST /login/login (user_id + password) |
| Antwort OK | Lade-Spinner für 3 Sekunden (fa-spinner-third fa-spin) angezeigt → Weiterleitung zu /ui/main |
| Antwort fehlgeschlagen | Alert-Box (shake-Animation, rote Hervorhebung) – "Bitte überprüfen Sie Benutzer-ID und Passwort und geben Sie sie korrekt ein." |
Benutzerinformationen werden im Session-Attribut _USER_LOGIN (JSONObject) gespeichert – UserFilter / ApiAuthFilter prüfen dieses Attribut für die Sitzungsvalidierung.
Dies ist die Zeitspanne für die Tokenvalidierung und das Umleitungs-Race auf Plattformseite. Zu schnelle Übergänge zu /ui/main können zu einer 401-Authentifizierungsumleitung und erneutem Anmeldebildschirm führen. Diese bewusste Verzögerung gewährleistet UX-Stabilität.
3. Eingabevalidierung
| Feld | Einschränkung |
|---|---|
| Benutzer-ID | 4–20 Zeichen (Buchstaben / Ziffern / @ etc.) |
| Passwort | 4–20 Zeichen, Klartext-Übertragung (HTTPS empfohlen) |
required="true" – HTML5-Validierung blockiert leere Werte. minlength/maxlength werden ebenfalls angewendet.
4. Häufige Fallstricke
| Symptom | Ursache / Lösung |
|---|---|
| Nach Anmeldung erneut Anmeldebildschirm | Session-Cookie blockiert / gemischte Domains (HTTPS ↔ HTTP). Verwenden Sie denselben Origin |
| Alle Passwörter werden abgelehnt | Cassandra pe.app_user_login Tabelle ist leer. Fordern Sie Systemadministrator zur Erstellung des initialen Benutzerkontos auf |
| Sitzung wird ständig unterbrochen | Tomcat Session-Timeout zu kurz – erhöhen Sie security.session.timeout.minutes in app.properties . Oder PersistentManager + FileStore konfigurieren (bereits implementiert – Sitzung bleibt bei Neustart erhalten) |
| Gleichzeitige Anmeldung von mehreren PCs | Zulässig (Multi-Session) – RBAC / Single Sign-On Erzwingung nicht unterstützt |
| IIoT-Illustration nicht sichtbar | Browser-Zoom ist zu klein oder Viewport ist sehr schmal (Minimum 200px des clamp ist größer als Viewport). Desktop empfohlen |
5. Sicherheitshinweise
- HTTPS empfohlen – Bei Exposition im externen Netz HTTPS erzwingen (Tomcat-Connector oder nginx/Apache Reverse-Proxy vorgelagert)
- REST
/api/v1/*erfordert Authentifizierung –ApiAuthFilterist durchlässig, wenn eine der folgenden Authentifizierungsmethoden erfüllt wird:X-API-KeyHeader (Wert mitEDGE_REST_API_KEY_FILEoderEDGE_REST_API_KEYinjiziert)Authorization: Bearer <key>Header- oder Anmelde-Sitzung (bereits im Browser angemeldet) – wenn
_USER_LOGINAttribut vorhanden ist, Sitzung validiert
?api_key=<key>Abfrageparameter können in URL-Verlauf/Proxy-Cache gespeichert werden und werden daher mit 401 abgelehnt- Schlüssel werden unter
edge.rest.api.keyinapp.propertiesdefiniert und nur dann erzwungen, wennedge.rest.api.auth=trueaktiv ist. Weitere Informationen unter REST API Guide - API-Aufrufe Audit-Protokoll – Jeder
/api/*Aufruf wird eine Zeile imApiAccessLogFilterProtokoll aufgezeichnet (Methode/Pfad/Status/Dauer/IP/Benutzer/Auth-Modus/UA), IP wird standardmäßig nachRemoteAddrbestimmt, apikey-Klartext wird mit den ersten 4 Zeichen + Länge maskiert - Passwort ändern – Zahnradsymbol oben rechts → Einstellungen →
edge.admin_password→ Speichern → Neustart (Weitere Informationen)
6. Weitere Ressourcen
- Erstes Bildschirm nach Anmeldung: Startbildschirm
- Passwort und API-Schlüssel ändern: Passwort und API-Schlüssel ändern
- REST API Authentifizierung im Detail: REST API Guide