Spring WS に 2 つのエンドポイント インターセプターを備えた Web サービスがあります。XML構成は次のようになります
<sws:interceptors>
<bean class="org.someorg.security.SignatureInterceptor"/>
<bean class="org.someorg.common.LoggingInterceptor">
<constructor-arg value="logger_1"/>
</bean>
</sws:interceptors>
SignatureInterceptor は、着信 SOAP エンベロープの署名を検証し、発信 SOAP エンベロープに署名します。
LoggingInterceptor は、生の SOAP データ (バイト配列) をデータベースに格納します。
LoggingInterceptor の前に SignatureInterceptor を呼び出す必要があり、この方法でインターセプター Bean を作成すると、問題が解決すると予想されます。ただし、ログ メッセージによると、LoggingInterceptor が最初に呼び出されるため、署名されていないデータがデータベースに格納されます。
次に、構成を変更し、Bean 宣言を交換するだけで、期待どおりに機能し始めました
<sws:interceptors>
<bean class="org.someorg.common.LoggingInterceptor">
<constructor-arg value="logger_1"/>
</bean>
<bean class="org.someorg.security.SignatureInterceptor"/>
</sws:interceptors>
しかし、このケースは私には明らかではありません。インターセプターの呼び出し順序を明示的に設定するにはどうすればよいですか?