メインコンテンツまでスキップ

ログイン (/login/form)

ゲートウェイ Web UI 進入画面。ログイン後、すべての /ui/* UI パスへのアクセスが可能。

2026.05+ ボックスの初期パスワード

install.sh 初回インストール時、ボックスごとにランダムパスワードが自動生成されます(デフォルト admin123! ではない可能性があります)。 ボックスの SSH アクセスが可能な場合:

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

このファイルに admin / mqtt / opcua / API key / keystore パスワードが一箇所に出力されています。 Factory provisioning 時は、印刷・保存後にボックスを封印することを推奨します。


1. 画面構成

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

1.1 背景ビジュアルエフェクト

  • ダークネイビーグラディエントlinear-gradient(135deg, #061830 0%, #0a2452 35%, #07182f 75%, #03101f 100%)
  • 5層 SVG ウェーブ (.login_wave .wv1 ~ .wv5) — 異なる amplitude/phase でスムーズに流動
  • オーロラ conic-gradient (.login_aurora) — 画面中心からゆっくり回転
  • 6個の光 orb (.orb) — radial-gradient、異なる座標でふわふわと浮遊
  • 右下 IIoT ゲートウェイイラスト (.edge_pc_deco .edge_gw_svg) — clamp(200px, 22vw, 320px) drop-shadow + breathe アニメーション。PlantPulse Edge のアイデンティティビジュアル化用途

エフェクトはすべて inline <style> または pp-login.css で定義 — 他のページへ移動すると消えます(ログインページのみ適用)。

1.2 フォーム領域

領域内容
ロゴ + 名称PlantPulse Edge ロゴ(回転)+ 日本語表記
HOSTNAME バッジ${edge_context.hostname} — どのゲートウェイであるか即座に識別
ユーザーID英文/数字/@ — placeholder ユーザーID
パスワード平文送信 — HTTPS 推奨
ログインボタンsubmit

2. 動作フロー

ステップ結果
フォーム submitPOST /login/login (user_id + password)
応答 OK3秒間のローディングスピナー (fa-spinner-third fa-spin) 表示 → /ui/main へ移動
応答 失敗alert ボックス (shake アニメーション、赤色強調) — "ログイン ID およびパスワードを確認した後、正確に入力してください。"

セッション属性 _USER_LOGIN (JSONObject) にユーザー情報を保存 — UserFilter / ApiAuthFilter がこの属性でセッション通過判定。

3秒のローディングが長く感じたら

プラットフォーム側のトークン検証/リダイレクト race が落ち着く時間を確保しています。余りに速く /ui/main へ移行すると、初回アクセスが 401 認証リダイレクトされてログイン画面に再進入することがあり、UX の安定性のため意図的に設けられた遅延です。


3. 入力検証

フィールド制約
ユーザーID4~20 字(英文/数字/@ など)
パスワード4~20 字、平文送信(HTTPS 推奨)

required="true" — HTML5 検証で空白値を遮断。minlength/maxlength も適用。


4. よくある陥りやすい点

症状原因 / 解決
ログイン直後に再びログイン画面へセッションクッキーがブロック / ドメイン混在(HTTPS ↔ HTTP)。同じ origin からアクセス
すべてのパスワードが拒否されるCassandra pe.app_user_login テーブルが空。システム管理者に初期ユーザー登録を要求
セッションが頻繁に切れるTomcat セッションタイムアウトが短い — app.propertiessecurity.session.timeout.minutes を延長。または PersistentManager + FileStore 設定(既に適用 — 再起動後もセッション保持)
別の PC での同時ログイン許可(マルチセッション)— RBAC / シングルログイン強制は未対応
IIoT イラストが表示されないブラウザズームが小さすぎるか viewport が極めて狭い場合(clamp の最小値 200px が viewport より大きい)。デスクトップ推奨

5. セキュリティ注記

  • HTTPS 推奨 — 外部ネットワーク露出時は HTTPS 強制(Tomcat コネクタまたは nginx/Apache リバースプロキシ前段に配置)
  • REST /api/v1/* は認証必須ApiAuthFilter が以下の認証方式のいずれかでも満たせば通過:
    • X-API-Key ヘッダー(EDGE_REST_API_KEY_FILE または EDGE_REST_API_KEY で注入した値)
    • Authorization: Bearer <key> ヘッダー
    • またはログインセッション(ブラウザで既にログイン状態)— _USER_LOGIN 属性があればセッション通過
  • ?api_key=<key> クエリパラメータは URL 記録/プロキシキャッシュにキーが残る可能性があり 401 で拒否
  • キーは app.propertiesedge.rest.api.key で設定 + edge.rest.api.auth=true の場合のみ強制。詳細は REST API ガイド
  • API 呼び出し監査ログ — すべての /api/* 呼び出しは ApiAccessLogFilter が 1 行ログを記録(メソッド/パス/ステータス/継続時間/IP/ユーザー/認証モード/UA)、IP はデフォルト RemoteAddr 基準、apikey 平文は先頭 4 字のみ + 長さでマスキング
  • パスワード変更 — 右上のギア → 環境設定 → edge.admin_password → 保存 → 再起動(詳細

6. さらに詳しく