私は適切に構成された http インボーカーのセットアップがあり、動作状態にあります。認証には、基本的にさまざまな基準 (Web コンテキスト、ユーザー名 pwd など) に基づいてスレッド ローカルに認証ビットを追加する AOP を使用します。
そして今、問題。コールがサービス終了時に受信されると、私のサービスは認証ビットを確認します。慎重にデバッグしたところ、それぞれのアスペクトが呼び出されていないことに気付きました。
認証ビットをスレッドローカルに追加するアスペクトの関連コードを次に示します。
@Before(value = "execution(public * provision(..))")
public void authenticate(){...}
そして、これが呼ばれるサービスメソッドです。
public ServiceResponse provision(String xyz, String abc){...}
ローカルセットアップで呼び出される「provision()」メソッドを作成すると、アスペクトが呼び出されます。しかし、このメソッドが http-invoker 経由で呼び出された場合、呼び出されませんか? この問題をエレガントに回避するにはどうすればよいですか? (私は認証ピースを provision() メソッドに追加するという1つの解決策を持っていますが、それは私のテスト能力とSRPを妨げています.