マルチセッション

最終更新日: 2020年12月18日
R8 | R9

概要

マルチセッションとは、1つのブラウザでタブを開いたとき、それぞれのタブで Wagby アプリケーションにログオンする仕組みをいいます。ログオン認証は、タブごとに独立して管理されます。

動作例

アカウント user1 でログオンしている状態で、ギアアイコンから「新規ログオン」を選びます。

図1 新規ログオンを行う

新しいタブが開きます。同じアカウント user1 で自動ログオンされ、同じ画面が開きます。

図2 新しいタブが開く。

マルチセッションの仕組み

図2のアドレスバーに注目します。URLの一部に5桁のランダムな数字が含まれています。これがマルチセッションを実現するための識別子となっています。(新規ログオンを行うたびに、新しい数字が生成されます。)

マルチセッションを利用すると、ユーザごとに内部で割り当てられる「セッション (*)」が、この識別子で管理されるようになります。このため、複数のタブであっても異なるセッションとして区別できるようになっています。

ここでいうセッションは、Webアプリケーションが管理する HttpSession オブジェクトを指します。

定義方法

設定方法

  1. "環境 > アプリケーション > HTTPセッション"を設定します。
  2. マルチセッション利用時は「同一ユーザーの同時接続数の上限数」を無制限としてください。

Redisのインストールと起動

本番運用では Redis を用います。インストールと起動方法...

応用 スクリプトによる画面遷移

独自ボタン押下時、マルチセッションを使ってログオンし、任意の画面に遷移するスクリプトを作成することができます。[詳細...]

仕様・制約

  • 「新規ログオン」を行ったときの画面が登録画面または更新画面だった場合、新しいタブの画面はメニュー画面が表示されます。
  • 「新規ログオン」を行ったときの画面が一覧表示画面で、このモデルが検索画面と一覧表示画面を別としていた場合、新しいタブの画面は検索画面が表示されます。
  • 複数のタブを開いたとき、それぞれのタブで同時認証接続数を消費します。マルチセッションで新しく開いたタブは不要になったとき、手動でログオフ処理を行うことですぐにセッションを解放するため、サーバの負荷軽減に貢献できます。ブラウザのタブを閉じる処理ではサーバのセッションが残り続けます。(これはセッションタイムアウトによって解放されます。)
  • 格納方式に Spring Session HashMap は本番運用で利用することはできません。本番運用では Spring Session Redis を指定し、別途 Redis をインストールしてください。 Spring Session HashMap はセッションタイムアウト機能が動作しないという制約があります。そのためセッションタイムアウトが発生してもログオンユーザは残り続けます。