ログイン (/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. 動作フロー
| ステップ | 結果 |
|---|---|
| フォーム submit | POST /login/login (user_id + password) |
| 応答 OK | 3秒間のローディングスピナー (fa-spinner-third fa-spin) 表示 → /ui/main へ移動 |
| 応答 失敗 | alert ボックス (shake アニメーション、赤色強調) — "ログイン ID およびパスワードを確認した後、正確に入力してください。" |
セッション属性 _USER_LOGIN (JSONObject) にユーザー情報を保存 — UserFilter / ApiAuthFilter がこの属性でセッション通過判定。
3秒のローディングが長く感じたら
プラットフォーム側のトークン検証/リダイレクト race が落ち着く時間を確保しています。余りに速く /ui/main へ移行すると、初回アクセスが 401 認証リダイレクトされてログイン画面に再進入することがあり、UX の安定性のため意図的に設けられた遅延です。
3. 入力検証
| フィールド | 制約 |
|---|---|
| ユーザーID | 4~20 字(英文/数字/@ など) |
| パスワード | 4~20 字、平文送信(HTTPS 推奨) |
required="true" — HTML5 検証で空白値を遮断。minlength/maxlength も適用。
4. よくある陥りやすい点
| 症状 | 原因 / 解決 |
|---|---|
| ログイン直後に再びログイン画面へ | セッションクッキーがブロック / ドメイン混在(HTTPS ↔ HTTP)。同じ origin からアクセス |
| すべてのパスワードが拒否される | Cassandra pe.app_user_login テーブルが空。システム管理者に初期ユーザー登録を要求 |
| セッションが頻繁に切れる | Tomcat セッションタイムアウトが短い — app.properties の security.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.propertiesのedge.rest.api.keyで設定 +edge.rest.api.auth=trueの場合のみ強制。詳細は REST API ガイド - API 呼び出し監査ログ — すべての
/api/*呼び出しはApiAccessLogFilterが 1 行ログを記録(メソッド/パス/ステータス/継続時間/IP/ユーザー/認証モード/UA)、IP はデフォルトRemoteAddr基準、apikey 平文は先頭 4 字のみ + 長さでマスキング - パスワード変更 — 右上のギア → 環境設定 →
edge.admin_password→ 保存 → 再起動(詳細)
6. さらに詳しく
- ログイン後の最初の画面:ホーム画面
- パスワード・API キー変更:パスワード · API キー変更
- REST API 認証詳細:REST API ガイド