問題タブ [wss4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6450 参照

.net - WCF クライアント例外 - 「メッセージ セキュリティの検証に失敗しました。署名の検証に失敗しました」 - どうすればさらにデバッグできますか?

私の WCF クライアントが Java ベースの Spring Web Services サーバーを呼び出して応答を受け取ると、次の例外が発生します -

内部例外 - 署名の検証に失敗しました。

Java ベースのサーバー Web サービスは私の要求を正常に処理しているようですが、応答で上記の問題が発生しています。注: サーバー側にはアクセスできません。変更を要求したりアクションを照会したりできますが、それだけです。

セットアップ

  • WCF .NET 3.5 クライアント Web サービス
  • Java Spring Web Services 2.1.0 (SOAP プロトコル実装) + Apache WSS4J 1.6.7 (WS-Security 1.1 実装) サーバー
  • config の次のセキュリティ バインディング:
  • バインディングはコードで次のように変更されています

    私ができないように見えるのは次のとおりです。

    1. どの署名が失敗したかを把握しますか? 内部例外のスタック トレースに記載されているSystem.ServiceModel.Security.ReceiveSecurityHeader.ProcessPrimarySignatureので、プライマリ シグネチャがメイン エンベロープ ボディ シグネチャであると推測しましたか? ただし、これと矛盾するのは、System.ServiceModel.Security.MessageSecurityProtocol.ProcessSecurityHeaderそれがヘッダー要素であると私に思わせる StackTrace の行ですが、どの行ですか?

    2. コンソールアプリケーションまたはSystem.Security.Cryptography.Xml.SignedXmlクラスを使用して同様のもので署名をチェックし、別の分離された環境でどの署名がfalseを返しているかを確認しますCheckSignature()-これを試してみましたが、WCFからのリクエストの要素に対してtrueを返すようには見えません(私はフィドラーからリクエストを引き出しました)

ありとあらゆる助けに感謝

0 投票する
0 に答える
4480 参照

java - WSS4J と Apache Axis が機能しない

Axis Web サービスで WSS4J を使用しようとしましたが、何も起こりません。WSS4J はまったく使われていないようです。必要なライブラリはすべて WEB-INF/lib ディレクトリにあります。サービスは org.apache.axis.client.AdminClient ユーティリティでデプロイされています。

ここに私の deploy.wsdd が​​あります:

hahaクラスがなくてもエラーは発生しません( passwordCallbackClassdeploy.wsdd のパラメーターを参照)。WSS ヘッダーなしで SOAP 要求をサービスに自由に送信できます。

アップデート

クラスパスの問題をいくつか解決しました。http://localhost:8080/axis/servlet/AxisServletページを開こうとすると、次のエラーが表示されますorg.apache.axis.ConfigurationException: java.lang.ClassNotFoundException: org.apache.ws.axis.security.WSDoAllSender。WSS4J jar は {tomcat}\webapps\axis\WEB-INF\lib ディレクトリにあります。私が間違っていることは何ですか?

更新 #2

nither wsdl4jjarにはorg.apache.ws.axis.security.WSDoAllSenderクラスもwss4jjarも含まれていないようです。ただし、このクラスバージョン 1.5.xのwss4jjar に含まれていました。今は行方不明です。WSS4J のドキュメントは古くなっています。

0 投票する
1 に答える
541 参照

java - Web サービスを 2 回呼び出すと、wss4j と soaphandler のエラーが発生する

wss4j を使用してサーバー上の SOAP 要求のセキュリティを検証しているときに問題が発生しました。これは、SOAP 要求のセキュリティ ヘッダーを検証するために使用するコードの一部です (SOAPHandler の handleMessage メソッドにいます)。実装) :

要求には署名とタイムスタンプがあります。最初に Web サービスを呼び出すと、すべてが正常に行われ、要求が処理されます。小さな Java プロジェクトを使用して Web サービスを呼び出し、プログラムが応答を取得して、正しく終了します。しかし、プログラムを再度起動しましたが、今回はサーバー側でチェックが機能しません。問題の原因を確認するために wss4j コードを調べてきました。DOMReference.validate メソッドでここにたどり着きました。

今回は calcDigestValue が異なり、理由がわかりません... 誰かそれについて何か知っていますか?

ありがとう。

編集:私は研究を進めてきましたが、問題は、リクエストエンベロープの本文がクライアントとサーバーの間のどこかで変更されているという事実に起因しています...クライアントを確認しましたが、本文はほぼ確実ですそこでは変更されません。これらの変更は 2 回目の呼び出しでのみ表示されますが、理由はまだわかりません ??

0 投票する
1 に答える
666 参照

cxf - CXFWSS4JインターセプターとWS-SecurityPolicy

WS-Securityポリシーについて質問があります。CXFWSS4JインターセプターまたはWS-Securityポリシーを使用してWS-Securityを実装できます。この2つのアプローチの違いは何でしょうか?WS-Securityポリシーをwsdlに埋め込むのは、cxfにインターセプターを追加するよりも難しいことがわかりました。この2つの違いを理解させてください。前もって感謝します

0 投票する
1 に答える
4491 参照

spring - wsse:security の名前空間

私の問題は、ユーザー名パスワード認証用の Wss4jSecurityInterceptor を持つ Web サービスを呼び出そうとしていることです。

生成されるリクエストは次のようになります。

これは機能していませんが、名前空間、つまりxmlns:wsseを変更すると

それは正常に動作します。

<wsse:Security>タグで生成された名前空間を自分のコードから変更する方法を知りたい

0 投票する
2 に答える
1427 参照

spring - Wss4jSecurityInterceptor が応答を復号化しない

ws-security に Wss4jSecurityInterceptor を使用して、Spring-ws に実装された Web サービス クライアントがあります。

エンドポイントの呼び出しは機能し、データは暗号化され、署名されて送信されますが、応答が受信されても​​復号化されません。代わりに JAXB の unmarshaller が呼び出され、次のようなエラーが発生します。

期待される要素は、xdd 内のすべてのデータ型をリストします。

これは私の Wss4jSecurityIntercepter が構成されているものです:

何がうまくいかないのですか?

ありがとう。

EDIT : これは、handleResponse で false を返した ClientInterceptor が原因で、wss4j インターセプターの前に配置されていたため、すべての Interceptor 処理が停止しました。

0 投票する
1 に答える
83 参照

wss4j - WSS4J は XKMS をサポートしていますか?

キーストアの代わりにXKMSを使用して秘密鍵と公開鍵を取得するように WSS4J を構成できますか?

これは、キーストア構成の例です。

XKMS を使用するための同様のセットアップはありますか、または XKMS を使用してorg.apache.ws.security.components.crypto.Cryptoキーを取得するためのカスタム実装を作成する必要がありますか?

0 投票する
0 に答える
1014 参照

wss4j - wss4j-1.6.10 の WSDoAllSender クラスの置き換え?

wssj4-1.5.12 でうまく動作する WSDD があります。次のようになります。

しかし、wss4j-1.6.10 に切り替えた後、ClassNotFoundException が発生します。

WSDoAllSender が wss4j-1.6.4 API に含まれなくなったようです。しかし、私はその代わりを見つけることができないようです。wss4j は SOAP 接続用の UsernameToken を引き続きサポートしていますか? WSDoAllSender の代替クラスは何ですか?

ありがとうございました。