
オープンソースTERASOLUNAで作るWebアプリ(5)
TERASOLUNAのセキュリティ機能でWebアプリを強化
株式会社NTTデータ 技術開発本部 ソフトウェア工学推進センタ
佐々木 高洋
2009/3/10
| 今回の主な内容 ・ログオンした情報を管理する 「ユーザー情報保持機能」 ・特定アクセスの画面を作る 「アクセス権限チェック機能」 ・さまざまなプロジェクトを経た 実用性の高いフレームワーク |
前回の「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を入力して、ログオンに成功した場合に一覧表示画面に遷移する処理を作成します。
![]() |
| 図1 ログオン処理イメージ |
入力されたユーザーIDに対して、該当する行がテーブルに存在すればログオン成功と判断します。ログオン成功した場合はUVOを生成します。追加・変更するファイルは以下のとおりです。
![]() |
| 図2 追加・変更するファイル |
■ UVOを定義する
ユーザー情報を格納するクラスを作成します。jp.terasoluna.fw.web.UserValueObjectを継承して、必要なプロパティを定義します。
| リスト1 SampleUVO.java | |
|
作成したクラスをUVOとして定義するには、プロパティ「user.value.object」を定義します。sourcesフォルダ直下のsystem.propertiesに以下の1行を追加します。
user.value.object=sample2.SampleUVO |
■ UVOを生成してセッションへ保存する
ログオン業務ロジックには、以下の実装をします。
- 入力されたユーザーIDでテーブルを検索して、ユーザー情報を取得
- (ユーザー情報があれば)UVOを生成してユーザー情報を格納
| リスト2 業務ロジッククラス(LogonBLogic.java) | |
|
業務入出力ファイルに、業務ロジックが出力したUVOをセッションに格納する設定を記述します。
| リスト3 業務入出力ファイル(blogic-io.xml) | |
|
次ページでは、ほかに必要なファイルを示し、実行してみます。さらに、もう1つの「アクセス権限チェック機能」について解説します。
| Index | ||||||||
|
||||||||
オープンソースTERASOLUNAで作るWebアプリ バックナンバー 連載インデックスへ»
- 第1回 Strutsの諸問題を解決するWebフレームワークとは?
- 第2回 Hello World!で理解する、Webアプリ開発の分業化
- 第3回 iBATISのORMとSpringのAOPを活用したDBアクセス
- 第4回 TERASOLUNAのタグで検索結果ページリンクを簡単に
- 最終回 TERASOLUNAのセキュリティ機能でWebアプリを強化
| Java Solution全記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


