Rampart が独自の STS サービスによって生成された SAML トークンを見つけられない理由を知っている人はいますか?
Rampart 1.6.2 を使用して Tomcat 7.0.28 に Axis2 1.6.2 を展開しています。Rampart STS サービスを使用して、デフォルトの SAML トークンを取得します。クライアントが取得したトークンは有効です。(OpenSAML を使用して、署名、SAML プロファイル、および XML を検証しました。)
ただし、トークンを生成したのと同じ Axis2/Rampart デプロイメントで実行される Web サービス要求にこのトークンを含めると、Rampart は「SAML Token missing in request」(RampartEngine.process() によって発行) を返します。NetKernel と OpenSAML で個別の実装を使用すると、同じリクエストで SAML トークンにアクセスして検証するのに問題はありません。この問題は、私が最初にこのタスクを実行しようとした Axis2/Rampart 1.5.1 から発生しています。
Rampart が独自の SAML トークンを拒否する理由を知っている人はいますか? Rampart に独自の SAML トークンを受け入れさせる方法を見つけましたか?
(私はこの問題に 1 年以上断続的に取り組んできました。あきらめて、Netkernel と OpenSaml を使用し、すべてを自分で行うかもしれません。多くの SOAP ヘルプを失いましたが、少なくとも SAML トークンを処理できます。 ... OpenSAML の多くの助けを借りて. Axis2/Rampart が機能することを望みます!)
問題に対する部分的な答えがあるかもしれません。ソースコードをたどると、署名されていないSAMLトークンのみをチェックするバリデーターの行に「SAMLトークンがありません」を追跡することができました。SAML トークンは署名する必要があります。これがエラーの原因だと思いますが、テスト用の城壁モジュールをビルドできません!
ANSWER 私は最終的にプロジェクトを構築し、上記の仮定をテストすることができ、実際に問題を解決しました. 署名済みトークンと未署名トークンの両方に対応するようにコードを変更しました。Rampart に JIRA の問題とその解決策を提出し、彼らが対処してくれることを願っています。その間、自分のサービスに対処するために、rampart-core-*.jar のローカル バージョンを作成しました。