前回の「TERASOLUNAのタグで検索結果ページリンクを簡単に」から、TERASOLUNA Server Framework for Java Web版(以下、TERASOLUNAフレームワーク)の応用編として、TERASOLUNAフレームワークが持っているWebアプリケーション開発に役立つさまざまな機能を紹介しています。
編集部注:「TERASOLUNA Server Framework for Java」を含むTERASOLUNA全体について詳しく知りたい読者は、特集「Java、.NET、Ajax開発の“銀の弾丸”オープンソース?」をご覧ください。
連載最終回の今回は、以下2つのセキュリティ機能を紹介します。
- ユーザー情報保持機能
- アクセス権限チェック機能
これまでと同様に、実際にWebアプリケーションを構築しながらこれらの機能を使っていきましょう。構築環境については、連載第3回の「iBATISのORMとSpringのAOPを活用したDBアクセス」を参照しておいてください。
ログオンした情報を管理する「ユーザー情報保持機能」
TERASOLUNAフレームワークでは、ユーザーの名前や権限などのユーザー固有情報を、セッションの「UVO(User Value Object)」と呼ばれるオブジェクトに保持します。UVOを使用することで、ユーザー情報は各業務から共通的に参照できるようになります。
また、ユーザーごとのアクセス制御などの機能も実現できます。UVOを利用して、前回作成した一覧表示アプリケーションに、ログオン処理を追加してみましょう。
実装概要
ログオン画面でユーザーIDを入力して、ログオンに成功した場合に一覧表示画面に遷移する処理を作成します。
入力されたユーザーIDに対して、該当する行がテーブルに存在すればログオン成功と判断します。ログオン成功した場合はUVOを生成します。追加・変更するファイルは以下のとおりです。
UVOを定義する
ユーザー情報を格納するクラスを作成します。jp.terasoluna.fw.web.UserValueObjectを継承して、必要なプロパティを定義します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
作成したクラスをUVOとして定義するには、プロパティ「user.value.object」を定義します。sourcesフォルダ直下のsystem.propertiesに以下の1行を追加します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
UVOを生成してセッションへ保存する
ログオン業務ロジックには、以下の実装をします。
- 入力されたユーザーIDでテーブルを検索して、ユーザー情報を取得
- (ユーザー情報があれば)UVOを生成してユーザー情報を格納
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
業務入出力ファイルに、業務ロジックが出力したUVOをセッションに格納する設定を記述します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次ページでは、ほかに必要なファイルを示し、実行してみます。さらに、もう1つの「アクセス権限チェック機能」について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.