
172
セッション管理
Webアプリケーションにおけるセッションとは、ユーザーとアプリ
ケーションとの一連のやり取りを表す概念です。HTTPプロトコルは
ステートレスであるため、データベースに永続化される前の処理途中の
状態はセッション情報として一時的に保存されます。一般的には、ユー
ザーごとに発行される一意のID(セッションID)をクライアント側に
保持し、実際のセッション情報はサーバー側で管理されます。
セッションの開始や終了、セッション情報の格納や参照は Webアプリ
ケーションフレームワークが標準で提供する仕組みを利用します。ここ
では、アプリケーション基盤として考慮すべき点について説明します。
共通情報へのアクセス
認証処理によってユーザーが認証された時点で、認証状態の確認や認
可のチェックに必要な、ユーザーIDやロール等の情報がセッション情
報に格納されます。それ以外にも、ユーザーの属性情報(氏名やメール
アドレス等)やユーザーの所属情報(所属部署の属性情報)などアプリ
ケーション機能から頻繁に参照される情報は認証時点で取得しておき、
セッション情報に保持しておくと便利です。
アプリケーション機能からこれらの情報を利用する際は、セッション
情報を特定するキーを指定して参照することも可能ですが、共通情報へ
アクセスする専用のAPIを用意しておくと便利です。ユーザー情報の
場合、たとえば
UserContext
のようなクラスを用意してアプリケーショ
ン機能から利用できるようにします。
セッションの区画化
セッションはユーザー単位に開始され ...