Web サービス フレームワークには、Apache axis2 の古いバージョンの 1 つを使用します。その一環として、ランパート 1.2 を使用しています。
認証に 'nonce' および 'timestamp' メカニズムでパスワード ダイジェストを使用しようとしています。検証を行うために城壁を取得しています。認証検証メカニズムが正常に機能しています (パスワード コールバックなどを含む)。
私が抱えている問題は、城壁が「リプレイ攻撃」を認識できるようにすることです。基本的に、これらの認識に関連する城壁モジュールの機能はアクティブではないようです。同じセキュリティ ヘッダーを axis2 サービスに何度でも送信でき (昨日生成したセキュリティ ヘッダーを送信しても)、問題なく認証され、Web サービス リクエストが完了します。
私の最善の推測は次のとおりです。リプレイ攻撃を検出する機能を有効にする、城壁モジュールの構成設定がどこかにありません。以下のリンク (services.xml ファイル内) に示されている構成の提案を両方試しましたが、どちらも機能していないようです:-
- http://hasini-gunasinghe.blogspot.com.au/2012_02_01_archive.html
- http://axis.apache.org/axis2/c/rampart/docs/configurations.html (右下に「リプレイ攻撃」と記載されています)
私が欠けているものとどこにあるかを助けたり、教えてくれる人はいますか(構成設定に関連していると思います)?
私のaxis2.xmlファイルに城壁のモジュール宣言があります:-
<module ref="rampart"/>
そして、すべての操作が宣言された後、services.xml ファイルに城壁の構成設定であると思われるものがあります;-
<parameter name="InflowSecurity">
<action>
<items>UsernameToken Timestamp</items>
<passwordCallbackClass>com.myCompany.service.dummy.MyAuthenticator</passwordCallbackClass>
</action>
</parameter>
<rampart:rampartconfig xmlns:rampart="http://ws.apache.org/rampart/policy">
<rampart:timestampprecisioninmilliseconds>true
</rampart:timestampprecisioninmilliseconds>
<rampart:timestampttl>300</rampart:timestampttl>
<rampart:timestampmaxskew>300</rampart:timestampmaxskew>
<rampart:timestampstrict>false</rampart:timestampstrict>
<rampart:ReplayDetection>1000</rampart:ReplayDetection>
</rampart:rampartconfig>