2014年7月8日火曜日

[SAStruts] RequestProcessor 内で Action やMethod のインスタンスを取得する

Seasar2のS2RequestProcessorを拡張しての共通処理に挑戦中。

やりたいことは殆ど『Seasar2 徹底入門』の「6.5 認証処理を実装する」の通りだけども、自前の処理を書くと途端に戸惑う。
特に、呼び出されるMethodやActionの取得方法がわからなくて困った。
調べる前にS2RequestProcessorのソースを見てたら類似の処理があったので、おそらくこれかな~。
// Actionの取得
S2ActionMapping s2mapping = S2ActionMappingUtil.getActionMapping();
Object action = s2mapping.getAction();
やりたい共通処理は認証で、自前のAbstractActionを継承したActionにのみ行いたい処理を今回のRequestProcessorに書くつもり。

認証を行う対象はアノテーションでマーキングすべきかと思ったけど、AbstractActionに認証用のDtoを定義している。
その為、↑で取得したActionのプロパティを見て対象を判定することにする。
// Methodの取得
S2ExecuteConfig executeConfig = S2ExecuteConfigUtil.getExecuteConfig();
Method method = executeConfig.getMethod();
なんとなく、org.seasar.struts.utilパッケージのユーティリティが鍵っぽい。

SAどころかStrutsの中身もちゃんと見たことないので、この機会にもう少し学んでみよう。

0 件のコメント:

コメントを投稿