読者です 読者をやめる 読者になる 読者になる

valid,invalid

関心を持てる事柄について

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の中身もちゃんと見たことないので、この機会にもう少し学んでみよう。