Login判定クラスの改造

Login処理( LoginCtrlクラス )の機能は完成していたと思っていたら、いきなりある改造要求がきたとします。
内容は、アカウント名に「root」と入力してログイン要求があったら、クラッカーの攻撃かもしれないので、
その要求元アドレスをログに残せ、というものです。

やることは簡単ですよね。LoginCtrlの onSubmit()メソッドの最初の方で、アカウント名が rootだったら、
ログを出力すればよいのです。
( 今回は説明を簡単にするために、ログの出力方法は log4j ではなく、System.out.println() を使います。)

LoginCtrl.java を変更しない

追加するコードは、すごく簡単なのですが、実開発において、ひとつ重要な問題があります。
「既にテストが終わっているLoginCtrl.java」のソースコードを変更するのは、あまりやりたくない。

理由は、どんな小さな変更であろうと、動いているソースを変更するということは、リスクが高いからです。

  • コーディングミスで、動いている箇所のソースを壊すかもしれない
  • LoginCtrl.javaのテストを「全部」やり直すことになる

そこでAOPフレームワークを利用して、LoginCtrl の onSubmit() メソッドがコールされる直前に、
アカウント名が「root」だったら、ログを出力するという機能を実装します。
今回のシナリオの目的は、以下の点です。

  • LoginCtrl.javaを変更せずに、処理を追加する
  • SpringFrameworkでAOPを利用する骨組みを理解する

では、左のメニューから「AOPの記述方法」の記事に進んでください。