CGLIBで@SkipValidationが効かない

Springに登録したActionクラスにCGLIBプロキシでAOPを適用すると、@SkipValidationが無視されてしまいます。その結果、本来は@SkipValidationするはずのメソッドがバリデーションされてしまい、以下のようなinputのマッピング定義がない!というエラーが発生します(Struts2.0.6)。

No result defined for action my.eshop.member.MemberAction$$EnhancerByCGLIB$$a68ea108 and result input - action - file ...struts-member.xml:9:53 at
・・・


原因は、org.apache.struts2.interceptor.validation.AnnotationValidationInterceptorが、@SkipValidationを取得する際に、親クラスを検査対象にしていないため。
(SpringのCGLIBプロキシは元のActionクラスのサブクラスとして生成されるため)


xwork2はそのあたりはきちんとしていて、親クラスも検査対象としています。AnnotationValidationInterceptor#doInterceptを、xwork2のAnnotationUtilsを参考にしてオーバライドして書き換えたら動きました。