Strutsを拡張した箇所について

現在strutsに含まれていないものの、当社のアプリケーションが必要としている機能として、下のようなものが考えられます。

  • DBへのアクセス
  • ログイン、ログアウト制御
  • 画面毎のアクセス制御

これらの機能はstrutsが汎用性を持つためにあえて無視した機能であると考えますが、当社のアプリケーションでは必要であり、標準化することでメリットがあります。そこでコアではこれらの機能の実装を行いました。
strutsに登場するクラスのうち、以下のものを独自に拡張しました。

  • Action → ExtededAction
  • ActionMapping → ExtendedActionMapping
  • ActionServlet → ExtendedActionServlet
  • RequestProcessor → ExtendedRequestProcessor

さらに、struts-htmlカスタムタグのうち遷移系タグ(formタグ、linkタグ)を拡張し、遷移先ページのセキュリティ情報のチェックを行えるようにしました。また、linkタグを拡張したbuttonLinkタグを新たに作成しました。
これらの拡張により、以下のメリットが得られます。

  • ログイン認証の標準化
  • ページごとのセキュリティ処理の標準化・簡略化

(1)サーブレットコンテナ
(2)ActionServlet
(3)RequestProcessor
(4)各Action
図はリクエストが発生した際の流れを示したものです。従来まではログインチェックなどの処理を各Actionクラスに、つまり左図の(4)の段階でで記述していました。 案件によっては実装用Actionのスーパークラスを用意して対処していましたが、それらのActionにも互換性はなく、機能ごとの移植を難しくしていました。 コアでは、ログイン認証とページセキュリティ検証処理を(3)の位置で行うように変更したため、すべてのActionで必ず上記の2つのチェックが実行されるようになります (struts-configに設定することでチェックを回避することもできます)。

前 へ次 へ