SoapUI
は正しくバイナリ応答を処理できないため、SOAP
要求が再設計が必要です。 私はそれをJavaベースにすることに決めました。私はthisが本当に役に立ちましたが、わかりませんが、どのように機能がコードスニペットに来るのかを確認しました。私はPKIStatus値でRFC 3161タイムスタンプ応答を確認してください
- DigestValue
- SignatureValue
- のX509Certificate
SOAP
要求し、私のtsendpintにリクエストを送信するためにこれらの情報を変換する方法がわからない中で定義された
を持っています。 TSAClientBouncyCastleも試しましたが、なぜログイン資格情報が必要なのかわかりません。私は、これらのフィールドを空のまま、それは
メッセージ1f0e140b
TSAClientBouncyCastle @ですべての時間を終えます。
私は、
TSAClientBouncyCastle
クラスをコンストラクタでMain
から呼び出します。データをデコードする必要があります。
// Get TSA response as a byte array InputStream inp = tsaConnection.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = inp.read(buffer, 0, buffer.length)) >= 0) { baos.write(buffer, 0, bytesRead); } byte[] respBytes = baos.toByteArray(); String encoding = tsaConnection.getContentEncoding(); if (encoding != null && encoding.equalsIgnoreCase("base64")) { respBytes = Base64.decode(new String(respBytes)); }
私はあなたの質問の要素間の関係を理解する。 1)SOAP要求はRFC3161タイムスタンプを必要としません。 2)タイムスタンプ(質問のタイトル)を確認したい3)しかし、あなたはTSAClientを使って新しいタイムスタンプを要求しています4)エラーはどこから来ますか?あなたはどのデータをタイムスタンプしていますか?コードを表示 – pedrofb
@pedrofb:申し訳ありません、はい、あまり明確ではありません。私は定義されたリクエストを持っていますが、SoapUIの答えは人間が読めるものではありません。未処理の応答には疑問符と四角形も含まれているので、私はSoapUIでasciiベースの情報を取得できないと思います。私はPKIStatusの価値を得る必要があります。それが私が検証と名付けたものです。 TSAClientが必要です.tsendpointの応答から多分ASCII情報を得ることができます。 – plaidshirt
タイムスタンプオーソリティ(TSA)は、特定の時刻より前にデータが存在するという証拠を生成します。 RFC3161で定義されているプロトコルとフォーマットを使用します。それがあなたの意図ならば、TSAで別のメッセージを確認することはできません。奇妙な文字が表示されるのは、メッセージがテキストではなくバイナリであるからです。おそらく、TSAはコンテンツタイプ 'application/timestamp-reply'でエラーを返しています。私はあなたのユースケースをまだ理解していません。私はあなたを助けることができません – pedrofb