Webサービスのメソッド呼び出し前にクラス情報を取得して処理したい
JAX-RS (WildflyのRestEasy)でWebサービスを作っています。
自作のアノテーションをWebサービスのメソッドなどに付与して、メソッドが呼ばれる前の共通の処理でそれを識別し、何らかの処理を組み込めるようにしたいです。
※今回やりたいのはCSRF対策のトークンのチェックを必要とするかどうかを、アノテーションで区別したいだけですが、他にも色々使いたいと考えています。
少なくとも、サーブレットフィルタ javax.servlet.Filter
を使えば、Webサービスのメソッドの呼び出し前に処理を割り込ませられることは、分かっています。
ただこれだと、「今回のHTTPリクエストで実際に呼び出されるWebサービスのクラスはどれか?」ということが分かりません。
クラスさえ特定できれば、リフレクションでアノテーションを取り出せるので、あとはいくらでもやりようがあるのですが・・・
もちろん、やろうと思えば、アプリケーション全体のクラスから、@Path
を探したりして解析することはできなくは無いと思いますが、これはJAX-RSがやってくれる処理を再開発することになるので、そこまでやろうとは思いません。
何か良い(標準的な)方法は無いでしょうか?