問題タブ [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.
wso2 - Axis2 Rampart を使用すると、WSS4J が「サブジェクト DN 証明書の制約が定義されていません。これはセキュリティ上の問題である可能性があります」と不平を言う
Rampart-1.6.2 と wss4j-1.6.14 を使用すると、次の警告メッセージが表示されます。Rampart で証明書のサブジェクト DN 制約を設定する方法について、誰かアドバイスをいただけないでしょうか。ただし、Apache CXF の方法を見つけました: http://cxf.apache.org/docs/ws-securitypolicy.html
ありがとう。
java - 別のタイム ゾーンの UsernameToken TimeStamp を使用した WS-Secured ヘッダー検証 (WSS4j) のエラー
UsernameToken Timestamp機能を備えたWSS4Jを使用して、Apache CXF(2.7.11)でWebサービス(トップダウンベース)を構築しました。SOAP UI で同じことをテストすると、サーバーとクライアントのコードは正常に動作するようです。
ただし、WS Security ヘッダーの IST (インド標準時) タイムゾーンでデータを送信するクライアント コードがあります。そのため、クライアントはエラーThe message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired)
がスローされていることを受け取ります。調査の結果、WSS4J で使用されているタイムゾーンが UTC であることがわかりました。WSS4JInterceptor で timestampStrict を false にしても機能しませんでした。どんな助けでも大歓迎です。
web-services - 個人署名アプリケーションを使用して SOAP メッセージに署名する
SOAP リクエストに署名するために WSS4J インターセプターを使用しています。独自の Java 署名プログラムでリクエストに署名するように outInterceptor を構成できるかどうかを知りたいです。
java - org.apache.ws.security.WSSecurityException: 一般的なセキュリティ エラー (復号化のための証明書が見つかりませんでした (KeyId))
WSS4J セキュア Web サービスであるコードをいくつか継承しました。これは、この人気のあるチュートリアルに基づいています: http://distributedsenses.blogspot.com/2008/09/configuring-cxf-for-web-service.html
現在、サーバー側は他のクライアントと連携していますが、私のものはそうではありません。:(
Tomcat のキーストアを生成し、公開キーをエクスポートして、サーバーにインストールしました。しかし、私が呼び出しを試みたとき、サーバーはエラーで応答します 復号化のための証明書が見つかりませんでした (KeyId)
今、私はコードに変更を加えていませんが、パッケージ名を変更しました (SOAP 呼び出しには関係ないと思います)。名前空間は変更しませんでした。
サーバーに証明書をエクスポートして、証明書が正しくインポートされたことを確認し、クライアントの公開鍵と正確に一致するようにしました。したがって、サーバーに証明書があることはわかっています。
これが私のOutInterceptorです
そして私のclientSign.properties
このエラーが発生する理由。公開鍵がサーバーのトラストストアにあることを知っています。そして、これは他のクライアントでも機能します。私が間違っていることは何ですか?
java - ログ ファイルへの SOAP 要求/応答の書き込み
wsdl url を使用して宛先サーバーとの接続を確立する Web サービス Client クラスがあります。このクラスは、JaxWsProxyFactoryBean と WSS4JOutInterceptor を使用して、安全な接続を確立します。コードによって生成された SOAP 要求と、サーバーから生成された応答を確認したいと思います。
コマンドラインからjarを実行するときに、次のオプションを含めてみました
ロギングに log4j を使用していますが、すべてのメッセージがカスタム ファイルに書き込まれます。コマンド ライン オプションを使用して、SOAP 要求/応答をこの同じファイルにダンプするにはどうすればよいですか?
これを実現するには、Client クラスのコードを変更する必要がありますか?
助けてくれてありがとう。
java - リクエストに署名した後、Java WSS4J 証明書がキーストアから消える
WSS4Jを使用して、キーストアからの証明書を使用してSOAP要求の署名者を作成しています。私のキーストア形式は .pkcs で、すべてが最初の署名で機能しますが、プログラムを実行して複数のドキュメントに署名しようとすると、キーストアに証明書が見つかりません。署名中に証明書が消費される可能性があるように思えます。つまり、現在の環境では証明書が存在しなくなっていることを意味します。プログラムが停止して再起動すると、最初のリクエストに署名しますが、2 番目のリクエストは失敗します。何度も通ったのですが、原因がわかりません。このコードは、証明書がキーストアから消える前に最後に呼び出されるものです。this.certUri = getWsConfig().getIdAllocator().createSecureId("X509-", certs[0]);
これは の 556 行にありWSSecSignature.class
ます。これが私のコードです。
また、doDebug モードをオンにしたいのですがWSSecBase.class
、値を切り替えるために変数ビューアーに表示されません。コンストラクターでブレークポイントを作成し、それを監視するように設定しましたが、トグルしても表示されません。
java - SOAPリクエストのUsernameTokenを生成するには?
SOAP Web サービスにリクエストを送信するために、Java で "UsernameToken-28FE7B32CCC1AB2B22141113557641136"> を生成したいと考えています。自動生成されるため、SoapUI とリクエストを使用するのは簡単ですが、Java でこれを行うにはどうすればよいですか? 現在、外部ファイルからリクエストを送信しています。Java からこれを実行し、UsernameToken を自動生成するにはどうすればよいですか?
これが私のコードです:
そして、invokeWS コード:
XML リクエストは次のとおりです (セキュリティ上の問題のために変更されています)。
java - 最初の署名後に Coldfusion WSS4J Java SOAP 署名証明書がなくなった
この問題のトラブルシューティングを数か月間試みています。最新バージョンの WSS4J にアップグレードすることで、Java オブジェクトのいくつかの問題を解決しました。私のテスト ケースはすべて、Eclipse 内でのテストに Coldfusion JRE を使用して動作します。jar をエクスポートして Coldfusion のクラスパスに追加し、Coldfusion をリセットすると、オブジェクトは初めて SOAP リクエストに署名し、その後エラーをスローし始めます。常に最初のリクエストに署名します。私はJavaLoaderも毎回jarからロードしようとしましたが、それもうまくいきません。
Coldfusion コードは次のとおりです。
を使用したJavaコードは次のとおりですWSS4J 2.0.1
2 番目のループで発生するエラー:
jar のロード方法によっては、次のエラーも表示されます。
これらを変更しorg.apache.xml.security.Init
た後、最初のループ後のエラーは次のとおりです。